/*
TASK:matrix
LANG:C++
*/
#include <iostream>
using namespace std;
int o[1000][1000],p=0;
int sort_function( const void *a, const void *b)
{
if(*(int *)a>=*(int *)b)return 1;
return -1;
}
int main ()
{
int i,j,n,m;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
                for(j=0;j<m;j++)
                                scanf("%d",&o[i][j]);
for(i=0;i<n;i++)
                {
                 qsort((void *)o[i],m,sizeof(o[i][0]),sort_function);
                 }
qsort((void *)o,n,sizeof(o[0]),sort_function);
int br=0;
for(i=0;i<n-1;i++)
                {
                 for(j=0;j<m;j++)if(o[i][j]==o[i+1][j])break;
                 if(j==m)br++;
                 }
printf("%d",n-br);
}

