#include<cstdio>
#include<queue>
using namespace std;
int idx[4]={0,0,1,-1};
int idy[4]={1,-1,0,0};
int posx[1000010],posy[1000010],inf=1e9,n,pos[2010][2010],a[2010][2010],cnt[1000010],k,rez;
queue<pair<int,int> >q;
struct ss{
   int x,y;
};
bool bfs(int color){

   int x=posx[color];
   int y=posy[color];

   pos[x][y]=1;

   q.push({x,y});
   int cn=0;

   ss xmin={inf,inf},ymin={inf,inf},xmax={0,0},ymax={0,0};

   while(q.size()){

      x=q.front().first;
      y=q.front().second;
      q.pop();

      cn++;

      if(x<xmin.x){
        xmin.x=x;
        xmin.y=y;
      }
      else if(x==xmin.x){
        if(y<xmin.y){
           xmin.x=x;
           xmin.y=y;
        }
      }

      if(y<ymin.y){
        ymin.x=x;
        ymin.y=y;
      }
      else if(y==ymin.y){
        if(x<ymin.x){
           ymin.x=x;
           ymin.y=y;
        }
      }

      /// dole desno

      if(x>xmax.x){
        xmax.x=x;
        xmax.y=y;
      }
      else if(x==xmax.x){
        if(y>xmax.y){
           xmax.x=x;
           xmax.y=y;
        }
      }

      if(y>ymax.y){
        ymax.x=x;
        ymax.y=y;
      }
      else if(y==ymax.y){
        if(x>ymax.x){
           ymax.x=x;
           ymax.y=y;
        }
      }



      for(int i=0;i<=3;i++){
         int nx=x+idx[i];
         int ny=y+idy[i];
         if(nx>n || nx<1 || ny>n || ny<1)continue;
         if(pos[nx][ny])continue;
         if(a[nx][ny]!=color)continue;

         pos[nx][ny]=1;
         q.push({nx,ny});
      }

   }

   if(cn!=cnt[color])return 0;

   if(ymax.x==xmax.x && ymax.y==xmax.y && ymin.x==xmin.x && ymin.y==xmin.y){

      int diffx=ymax.x-ymin.x+1;
      int diffy=ymax.y-ymin.y+1;

      if(cn==diffx*diffy)return 1;
      else return 0;

   }
   return 0;

}
int main(){

    scanf("%d %d",&n,&k);

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
            scanf("%d",&a[i][j]);
            posx[a[i][j]]=i;
            posy[a[i][j]]=j;
            cnt[a[i][j]]++;
        }

    for(int i=1;i<=k;i++){
        if(cnt[i]==0)continue;

        if(bfs(i))rez++;
    }

    printf("%d\n",rez);

return 0;
}