#include <iostream>

using namespace std;

int main() {
    long long n, k;
    cin >> n >> k;
    long long a[n][n];
    long long ng[k], nd[k], nl[k], nr[k];
    for(int i=1;i<=k;i++){
        ng[i]=n;
        nd[i]=0;
        nl[i]=n;
        nr[i]=0;
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cin >> a[i][j];
            if(i<ng[ a[i][j] ]){
                ng[ a[i][j] ] = i;
            }
            if(i>nd[ a[i][j] ]){
                nd[ a[i][j] ] = i;
            }
            if(j<nl[ a[i][j] ]){
                nl[ a[i][j] ] = j;
            }
            if(j>nr[ a[i][j] ]){
                nr[ a[i][j] ] = j;
            }
        }
    }
    /*for(int i=1;i<=k;i++){
        cout << i << endl;
        cout << ng[i] << " " << nd[i] << " " <<  nl[i] << " " << nr[i] << endl;
    }*/
    bool t;
    long long br=0;
    for(int b=1;b<=k;b++){
        // proveravam da li su u okviru svi isti
        t=true;
        // provera kontradikcije 
        if(nd[b]<ng[b]){
            t=false;
        }
        for(int i=ng[b];i<=nd[b];i++){
            for(int j=nl[b];j<=nr[b];j++){
                if(a[i][j]!=b){
                    t=false;
                    break;
                }
            }
            if(t==false){
                break;
            }
        }
        if(t==true){
            br++;
            //cout << "Naso " << b << endl;
        }
    }
    cout << br << endl;
    return 0;
}