#include <iostream>

using namespace std;
struct Sorte
{
    int pocetak;
    int kraj;
    short valid;
};
int main()
{
    long long int n, k;

    int i, j;

    cin>>n>>k;
    int pocetak=0;
    int kraj=0;

    Sorte sorta[k];

    for(i=0; i<k; i++)
    {
        sorta[i].valid=0;
    }

    for(i=0; i<n; i++)
    {
        int prethodni, broj;
        for(j=0; j<n; j++)
        {
            cin>>broj;

            if(sorta[broj].valid<2)
            {
                if(j==0)
                {
                    pocetak=j; kraj=j;
                }
                else if (broj==prethodni)
                {
                    kraj=j;
                }
                else
                {
                    if(sorta[prethodni].valid==0)
                    {
                        sorta[prethodni].kraj=kraj;
                        sorta[prethodni].pocetak=pocetak;
                        sorta[prethodni].valid=1;
                    }
                    else if((sorta[prethodni].pocetak != pocetak) || (sorta[prethodni].kraj != kraj))
                    {
                        sorta[prethodni].valid=2;
                    }

                    pocetak=j;
                    kraj=j;
                }

                if(broj==n-1)
                {
                    if (sorta[broj].valid==0)
                    {
                        sorta[broj].kraj=kraj;
                        sorta[broj].pocetak=pocetak;
                        sorta[broj].valid=1;
                    }
                    else if((sorta[broj].pocetak != pocetak) || (sorta[broj].kraj != kraj))
                    {
                        sorta[broj].valid=2;
                    }
                }
                prethodni=broj;

            }

        }
    }

    long long int brojac=0;

    for(i=0; i<k; i++)
    {
        if(sorta[i].valid==1)
        {
            brojac++;
        }
    }

    cout<<brojac<<endl;

    return 0;
}