#include<iostream>

using namespace std;


bool pravougaonik(int x[][2000],int i,int j,int b,int c){
int a,g;
int ind=x[i][j];
for(a=i;a<=b;a++){
    for(g=j;g<=c;g++){
      if(x[a][g]!=ind)
        return false;
    }
}
return true;
}




void izbrisi(int x[][2000],int i,int j,int n){
int a,b,c;
c=x[i][j];
for(a=i;a<n;a++){
    for(b=j;b<n;b++){
      if(x[a][b]==c)
        x[a][b]=0;
}
}
}


int main(){
 int n,i,j,k,b,c,a,sorta,zbir,indikator,ind;
 cin>>n;
 cin>>k;
 zbir=0;

 int x[n][2000];
for(i=0;i<n;i++){
    for(j=0;j<n;j++){
        cin>>x[i][j];
    }
}
for(i=0;i<n;i++){
    for(j=0;j<n;j++){
            if(x[i][j]==0)
            continue;
            ind=x[i][j];
        for(b=0;b<n;b++){
            for(c=0;c<n;c++){
                if(x[b][c]==0)
            continue;
if(x[b][c]==ind){
    if(pravougaonik(x,i,j,b,c)){
    zbir+=1;;
    izbrisi(x,i,j,n);
}
else
    izbrisi(x,i,j,n);
}
            }
        }
    }
}

cout<<zbir;

return 0;
}