#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int N=505;
int n,m,p,ans;
int t[N<<1],r[N];
int a[N][N];
void init(){
sort(t+1,t+m+1);
r[1]=t[1]+p-t[m];
for(int i=2;i<=m;i++)r[i]=t[i]-t[i-1];
for(int i=1;i<=m;i++)t[i]=r[i];
}
int main(){
freopen("plate.in","r",stdin);
freopen("plate.out","w",stdout);
scanf("%d%d%d",&n,&m,&p);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)scanf("%d",&t[j]);
init();
for(int j=1;j<=m;j++)t[j+m]=t[j];
int p,p1=1,p2=2,len;
while(p1<=m&&p2<=m){
len=0;
while(t[p1+len]==t[p2+len]&&len<m)++len;
if(len==m)break;
if(t[p1+len]>t[p2+len]){
p1=p1+len+1;
if(p1==p2)++p2;
}
else {
p2=p2+len+1;
if(p1==p2)++p1;
}
}
p=min(p1,p2);
for(int j=1;j<=m;j++)a[i][j]=t[p+j-1];
}
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++){
bool f=1;
for(int k=1;k<=m;k++){
f&=(a[i][k]==a[j][k]);
}
ans+=f;
}
printf("%d\n",ans);
return 0;
}