#include <iostream>


using namespace std;

int main() 
{
	int n, k, broj, pogodno = 0, pomocnja, brojac_dobrih=0, broj_redova=0, max, zamena, broj_dobrih_u_redu, dovoljno;
	cin >> n >> k;
	int polje[n][n];
	int brojevi[k+1];
	for(int i = 1; i < k+1; i++)
	{
		brojevi[i] = 0;
	}
	for(int i = 0; n > i; i++)
	{
		for(int j = 0; n > j; j++)
		{
			cin >> broj;
			polje[i][j] = broj;
			brojevi[broj]++;
		}
	}
	int j = 0;
	for(int vrsta_jabuke = 1; k>=vrsta_jabuke; vrsta_jabuke++)
	{
		pomocnja = 0;
		max = n;
		for(int i = 0; n > i; i++)
		{
			broj_dobrih_u_redu = 0;
			for(j = pomocnja; n > j; j++)
			{
				if(polje[i][j] == vrsta_jabuke && j <= max)
				{
					brojac_dobrih++;
					broj_dobrih_u_redu++;
					zamena = j;
					if(broj_redova == 0)
					{
						pomocnja = j;
						broj_redova++;
					}
				}
			}
			if(broj_redova == 1)
			{
				max = zamena;
				dovoljno = broj_dobrih_u_redu;
				broj_redova++;
			}
			if(broj_redova == 2 && broj_dobrih_u_redu == 0)
			{
				break;
			}
			if(broj_redova == 2 && broj_dobrih_u_redu < dovoljno)
			{
				brojac_dobrih--;
				break;
			}
		}
		if(brojac_dobrih == brojevi[vrsta_jabuke] && brojevi[vrsta_jabuke] != 0)
		{
			pogodno++;
		}
		brojac_dobrih=0;
		broj_redova = 0;
	}
	cout << pogodno;
	return 0;
}