#include <iostream>

using namespace std;

int n,k;
int M[2000][2000];
int br[1000010];
pair<int,int> pozicija[1000010];

int kvadrat(int l)
{
	if(br[l]==0)
		return 0;
		
	if(br[l]==1)
		return 1;
		
	int pi=pozicija[l].first;
	int pj=pozicija[l].second;
	int desniKraj=pj;
	while(M[pi][desniKraj]==l && desniKraj<n)
	{
		desniKraj++;
		br[l]--;
	}
	if(br[l]==0)
		return 1;
					
	for(int i=pi+1;i<n;i++)
		for(int j=pj;j<desniKraj;j++)
		{
			if(M[i][j]==l)
				br[l]--;
			else
			{
				if(br[l]==0)
					return 1;
				return 0;
			}
		}
	if(br[l]==0)
		return 1;
	return 0;					
}

int main()
{
	int rez=0;
	int pom;
	scanf("%d%d", &n, &k);
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
		{
			scanf("%d", &pom);
			M[i][j]=pom;
			br[pom]++;
			if(br[pom]==1)
			{
				pozicija[pom].first=i;
				pozicija[pom].second=j;
			}
		}	
	
	for(int l=0;l<=k;l++)
	{
		//	printf("%d) %d  %d %d\n", i,br[i],pozicija[i].first,pozicija[i].second);
		rez+=kvadrat(l);
	}
	printf("%d", rez);
	return 0;
}