#include <bits/stdc++.h>

using namespace std;
struct broj{
    int nula;
    int jedan;
    int dva;
    int tri;
    int cetiri;
};
int n,k;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>k;
    vector<int> pom(n+2,0);
    vector< vector<int> > matrica(n+2,pom);
    broj nesto;
    nesto.nula=0;
    nesto.jedan=0;
    nesto.dva=0;
    nesto.tri=0;
    nesto.cetiri=0;
    vector< broj > popunjavanje(k+1,nesto);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>matrica[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            int kolko=0;
            if(matrica[i+1][j]!=matrica[i][j]) kolko++;
            if(matrica[i-1][j]!=matrica[i][j]) kolko++;
            if(matrica[i][j+1]!=matrica[i][j]) kolko++;
            if(matrica[i][j-1]!=matrica[i][j]) kolko++;
            if(kolko==0) popunjavanje[matrica[i][j]].nula++;
            if(kolko==1) popunjavanje[matrica[i][j]].jedan++;
            if(kolko==2) popunjavanje[matrica[i][j]].dva++;
            if(kolko==3) popunjavanje[matrica[i][j]].tri++;
            if(kolko==4) popunjavanje[matrica[i][j]].cetiri++;
        }
    }
    int res=0;
    for(int i=1;i<=k;i++){
        if(popunjavanje[i].cetiri==1 && popunjavanje[i].tri==0 &&
           popunjavanje[i].dva==0 && popunjavanje[i].jedan==0 &&
           popunjavanje[i].nula==0) res++;
        if(popunjavanje[i].cetiri==0 && popunjavanje[i].tri==0 &&
           popunjavanje[i].dva==4){
           	if((popunjavanje.dva+popunjavanje.jedan)/4*(popunjavanje.dva+popunjavanje.jedan)/4>=popunjavanje.jedan+popjnjavanje.dva+popunjavanje.nula && ((popunjavanje.dva+popunjavanje.jedan)/2-2)*2<=popunjavanje.jedan+popunjavanje.dva+popunjavanje.nula)
           	} 
        if(popunjavanje[i].cetiri==0 && popunjavanje[i].tri==2 && popunjavanje[i].jedan==0 &&
           popunjavanje[i].nula==0) res++;
    }
    cout<<res;
    return 0;
}