/*
TASK:matrix
LANG:C++
*/
#include <iostream>
using namespace std;
unsigned int data[1000][1000], n, m;
long long f[1028][1028];

int main(){
    int i, j, k, br=0;
    cin>>n>>m;
    for(i=0; i<n; i++)
       for(j=0; j<m; j++)
          cin>>data[i][j];
    for(i=0; i<n; i++)
       for(j=0; j<=m; j++)
          f[i][j]=1;
    for(i=0; i<n; i++)  {
//presmqtame m+1 stojnosti na (x-di1)...(x-dim)
       for(j=0; j<m; j++)
          for(k=0; k<=m; k++)
             f[i][k]*=(long long)(k-data[i][j]);
//sravnqwame gi s predishnite - ravni st-sti oznachava edna i sushta f()
       int p=1, q;
       for(j=0; (j<i)&&p; j++){
          q=1;
          for(k=0; (k<=m) && q ; k++)
             if(f[j][k]!=f[i][k]) q=0;
          if(q) p=0;
       }
       if(p) br++;
    }
    cout<<br<<endl;
    return 0;
}

