/*
TASK: matrix
LANG: C++
*/
#include <stdio.h>
#include<iostream>

using namespace std;
int nRows,nColoums;
int comparer(short int *c,int*b)
{
    int i;
    for(i = 0;i < nColoums;i++)
    {
          if(c[i] != b[i])
          {
                  return 0;
          }
    }
    return 1;
}
void pushr(short int *c,int*b)
{
    int i;
    for(i = 0;i < nColoums;i++)
    {
          c[i] = b[i];
    }
}
int main()
{
    short int a[1000][1000];
    int tmp[1024];
    int i,j;
    scanf("%d %d",&nRows,&nColoums);
    int brRows;
    brRows = nRows; 
    for(i = 0;i < nRows;i++)
    {
          for(j = 0;j < nColoums;j++)
          {
                scanf("%d",&tmp[j]);
          }
          sort(tmp,tmp+nColoums);
          for(j = 0;j < i;j++)
          {
                if((a[j][0] == tmp[0])&&(a[j][nColoums-1]==tmp[nColoums-1]))
                {
                           if(comparer(a[j],tmp)==1)
                           {
                                brRows--;
                                break;
                           }
                }
          }
          pushr(a[j],tmp);          
    }
    printf("%d",brRows);
    return 0;
}
