#include <iostream>
#include <set>
#include <cstdio>
#include <map>
#include <cstring>
using namespace std;
set<string> book,ans;
map<string,int> vis;
int n,s[1011][10],ss[11];
int main()
{
int i,j,l,len;
cin>>n;
for(i = 1;i <= n;i++)
{
string tmp;
for(j = 1;j <= 5;j++)
{
cin>>s[i][j];
tmp.push_back(s[i][j] + '0');
}
vis[tmp] = -1;
}
for(len = 1;len <= n;len++)
{
book.clear();
for(i = 1;i <= 5;i++)ss[i] = s[len][i];
for(i = 1;i <= 5;i++)
{
int t = ss[i];
for(l = 1;l <= 9;l++)
{string cmp;
ss[i] = (ss[i] + l) % 10;
for(j = 1;j <= 5;j++) cmp.push_back(ss[j] + '0');
if(vis[cmp] != -1 && !book.count(cmp)) book.insert(cmp);
ss[i] = t;
}
}
for(i = 1;i <= 5;i++)
{
int t = ss[i];
for(l = 1;l <= 9;l++)
{string cmp;
ss[i] = (ss[i] - l + 10) % 10;
for(j = 1;j <= 5;j++) cmp.push_back(ss[j] + '0');
if(vis[cmp] != -1 && !book.count(cmp)) book.insert(cmp);
ss[i] = t;
}
}
for(i = 1;i < 5;i++)
{
int t1 = ss[i],t2 = ss[i + 1];
for(l = 1;l <= 9;l++)
{string cmp;
ss[i] = (ss[i] + l) % 10,ss[i + 1] = (ss[i + 1] + l) % 10;
for(j = 1;j <= 5;j++) cmp.push_back(ss[j] + '0');
if(vis[cmp] != -1 && !book.count(cmp)) book.insert(cmp);
ss[i] = t1,ss[i + 1] = t2;
}
}
for(i = 1;i < 5;i++)
{
int t1 = ss[i],t2 = ss[i + 1];
for(l = 1;l <= 9;l++)
{ string cmp;
ss[i] = (ss[i] - l + 10) % 10,ss[i + 1] = (ss[i + 1] - l + 10) % 10;
for(j = 1;j <= 5;j++) cmp.push_back(ss[j] + '0');
if(vis[cmp] != -1 && !book.count(cmp)) book.insert(cmp);
ss[i] = t1,ss[i + 1] = t2;
}
}
if(len == 1) for(set<string>:: iterator it = book.begin();it != book.end();it++) ans.insert(*it);
else
{
for(set<string>:: iterator it = ans.begin();it != ans.end();it++)if(!book.count(*it)) ans.erase(*it);
}
}
cout<<ans.size();
}