#include <iostream>
#include <vector>
#include <map>
using namespace std;
int n,m,c,num_i,kind,sum;
map<int,int> mymap;
map<int,int>::iterator it;
void caltimes(vector<vector<int>> fnum)
{
int index = 0;
map<int,int> anmap;
for(int i =0;i<fnum.size();i++)
{
for(int j = 0;j<fnum[i].size();j++)
{
int tempv = fnum[i][j];
it = anmap.find(tempv);
if(it !=anmap.end())
{
anmap[tempv]++;
}
else{
anmap[tempv] = 1;
}
}
}
for(it=anmap.begin();it!=anmap.end();it++)
{
if(it->second>1)
{
//cout<<it->first<<" up "<<it->second<<endl;
map<int,int>::iterator ait;
ait = mymap.find(it->first);
if(ait !=mymap.end())
{
mymap[it->first]++;
}
else{
mymap[it->first] = 1;
}
}
}
}
int main() {
cin>>n>>m>>c;
vector<vector<int>> finnum;
for(int i =0;i<n;i++)
{
int t;
cin>>t;
vector<int> stn;
for(int j =0;j<t;j++)
{
int tn;
cin>>tn;
stn.push_back(tn);
}
finnum.push_back(stn);
}
sum = 0;
for(int i= 0;i<n;i++)
{
vector<vector<int>>tempg;
vector<vector<int>>ltempg;
for(int j =0;j<m;j++)
{
int ith = (i+j)%n;
vector<int> tv = finnum[ith];
tempg.push_back(tv);
}
caltimes(tempg);
}
/* for(it=mymap.begin();it!=mymap.end();it++)
{
if(it->second>1)
{
cout<<it->first<<" "<<it->second<<endl;
sum++;
}
}*/
sum = mymap.size();
cout<<sum<<endl;
}