/* 
TASK:matrix
LANG:C++
*/
#include <iostream>
using namespace std;
#define N 100
int totcn;
int n,m;
//?

void sort(int *a)
{
	int x;
	
	for (x=0; x<m; x++)
	{
		for(int k=x+1; k<m; k++)
		{
			if(a[k]<a[x])
			{
				int t; t = a[x];
				a[x] = a[k]; a[k] = t;
			}
		}
		cout<<x<<endl;
	}
}
bool comp(int *a, int*b)
{
	bool res = 1;
	int len = m;
	int i;
	for( i=0; i<len; i++)
	{
		if (a[i] != b[i])
		{
			res =0;
			break;
		}
	}
	return res;
}
void nuull(int *a)
{
	int i;
	for( i=0; i<m; i++)
	{
		a[i] =0;
	}
}
int main()
{

	int a[N][N];
	int n,m;
	cin>>n>>m;
	totcn =n;
	int i;
	for( i=0; i<n; i++)
	{
		for(int j=0; j<m; j++)
		{
			cin>>a[i][j];
		}
	}
	
	for (i=0; i<n; i++)
	{
		sort(a[i]);
	}
	int* tmp = new  int[m];
	for(int p=0; p<n; p++)
	{
		if (a[p][0] !=0)
		{	
			for(int j=0; j<m; j++)
			{
				tmp[j] = a[p][j];
			}
			for(int d=p+1; d<n; d++)
			{
				if (comp(tmp,a[d]))
					{
						totcn--;
						nuull(a[d]);
					}
			}
		}
	}
	cout<<totcn+8<<endl;

	return 0;

}