#include <bits/stdc++.h>

//KVALIFIKACIJE SS 2018 KRUG2 P2

using namespace std;

long long n, k, rez=0;
vector< pair<long long, long long> > pozicije[1000010];

bool sortaJePravougaona(int sorta)
{
    int n=pozicije[sorta].size();
    long long sirina=-1, pocetak=-1;

    if (n==0)
        return false;
    if (n==1)
        return true;

    pocetak=pozicije[sorta][0].second;
    for (int i=0; i<n; i++)
    {
        if (sirina!=-1)
        {
                if (pozicije[sorta][i].second>sirina)
                    return false;
        }
        else
        {
            if (pozicije[sorta][i].first==pozicije[sorta][i-1].first + 1)
                    sirina=pozicije[sorta][i-1].second;
            if (pozicije[sorta][i].second>pozicije[sorta][i-1].second + 1)
                return false;

        }
        if (pozicije[sorta][i].first>pozicije[sorta][i-1].first + 1)
                return false;
        if (pozicije[sorta][i].second<pocetak)
            return false;
        if (pozicije[sorta][i].second>pozicije[sorta][i-1].second + 1)
            return false;
    }
    return true;
}

int main()
{
    cin>>n>>k;

    long long sorta;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            pair<long long, long long> par;
            par.first=i; par.second=j;

            cin>>sorta;
            pozicije[sorta].push_back(par);
        }
    }


    /*for (int i=1; i<=k; i++)
    {
        for (int j=0; j<pozicije[i].size(); j++)
            cout<<pozicije[i][j].first<<" "<<pozicije[i][j].second<<endl;
    }*/


    for (int i=1; i<=k; i++)
    {
        //cout<<"i je "<<i<<endl;
        if (sortaJePravougaona(i))
        {
            rez++;
            //cout<<i<<endl;
        }
    }
    cout<<rez;

}