#include <iostream>
#include <set>
int mark[2005][2005];
int m[2005][2005];
int l[1000000];

using namespace std;

void obradi(int i, int j, int &z){
int f=i;
int g=j;
int p=j;
int k=j;
while(m[i][j]==m[i][k])k++;
f++;
for(int x=j;x<k;x++)
{
    if(m[f][x]!=m[i][j])break;
    if(x==k-1){
        f++;
        x=j;
    }
}
int i1=i,j1=j;
for(i1;i1<f;i1++){
    for(j1;j1<k;j1++)
        mark[i1][j1]=1;
}
if((f-i)*(k-j)==l[m[i][j]])z++;
}
int main()
{
    int k,n,z=0;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>m[i][j];
            mark[i][j]=0;
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            l[m[i][j]]++;
        }
    }
    int i=1;
    int p=1;
    int s;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(mark[i][j]==0)
                obradi(i,j,z);
        }
    }
    cout<<z<<endl;
}