/*
TASK: matrix
LANG: C
*/

#define MAX 1000
#include <stdio.h>
#include <stdlib.h>

int a[MAX+5][MAX+5];
int n, m;
int i, j, k, fl;

int sort ( const void* a, const void* b )
         {
          if ( *(int*)a > *(int*)b ) return 1;
          if ( *(int*)a == *(int*)b ) return 0;
          return -1;
         }

int main()
{

scanf ( "%d%d", &n, &m );

for ( ; n>0; n--, k++ )
    {
     for ( j=0; j<m; j++ )
         scanf ( "%d", &a[k][j] );

     qsort ( (void *)a[k], m, sizeof(int), sort );
     for ( j=0; j<k; j++ )
         {
          fl=0;
          for ( i=0; i<m; i++ )
              if ( a[k][i] == a[j][i] ) fl++;
          if ( fl==i ) { k--; break; }
         }
    }

printf ( "%d\n", k );

return 0;
}

