/*
TASK: matrix
LANG: C++
*/
#include<iostream>
using namespace std;
    int a[1000],b[1000][1000],n,m,k;
int f();
void push();
int main()
{
    int i,j,fl,p;
    scanf("%d%d",&n,&m);
   for(i=0;i<n;i++)
   {
    fl=1;
    for(j=0;j<m;j++)scanf("%d",&a[j]);
    sort(a,a+m);
    for(p=0;p<k;p++)
     if(f()==1){fl=0;break;}
     if(fl)push();
   }
   printf("%d\n",k);
}
void push()
{
   int i;
   for(i=0;i<m;i++)b[k][i]=a[i];
   k++;
}
int f()
{
    int i,j,fl;
    for(i=0;i<k;i++)
    {
     fl=0;
     for(j=0;j<m;j++)
     {
       if(a[j]!=b[i][j]){fl=1;break;}
     }
     if(fl==0)return 1;
    }
return 0;
}
