#include <bits/stdc++.h>

using namespace std;
int nizk[1000001];
int* prvi(int **a,int sorta,int n)
{
    int *rez = new int [2];
   for(int i=0;i<n;i++)
   {
       for(int j=0;j<n;j++)
       {
           if(a[i][j]==sorta)
            {
                rez[0]=i;
                rez[1]=j;
                return rez;
            }
       }
   }
}
int* poslednji(int **a,int sorta,int n)
{
    int *rez = new int [2];
   for(int i=n-1;i>=0;i--)



       for(int j=n-1;j>=0;j--)
       {
           if(a[i][j]==sorta)
            {
                rez[0]=i;
                rez[1]=j;
                return rez;
            }
       }
   }

bool pravougaonik(int **a,int P,int n,int sorta)
{
    int *prvin=prvi(a,sorta,n);
    int *poslednjin=poslednji(a,sorta,n);

    int prvo=abs(prvin[0]-poslednjin[0])+1;
    int drugo=abs(prvin[1]-poslednjin[1])+1;
    int prez=prvo*drugo;
       // cout<<sorta<<" "<<prvin[0]<<" "<<prvin[1]<<" "<<poslednjin[0]<<" "<<poslednjin[1]<<" "<<prez<<" "<<P<<endl;
    if(prez==P)
        return true;
        else
    return false;
}
int main()
{
    cin.sync_with_stdio(0);
    cin.tie(0);
   int n,k;
   int br=0;
   cin>>n>>k;
   for(int i=0;i<k;i++)
   {
       nizk[i]=0;
   }
   int **a = new int * [n];  //first allocate array of row pointers

for(int i=0 ; i<n ; ++i)
{
   a[i] = new int[n]; // allocate memory for columns in each row
}
   for(int i=0;i<n;i++)
   {
       for(int j=0;j<n;j++)
       {
        cin>>a[i][j];
        nizk[a[i][j]]++;
       }
   }
   for(int i=0;i<k;i++)
   {
      // cout<<nizk[i]<<endl;
   }
   for(int i=0;i<k;i++)
   {    if(nizk[i]>0){

        if(pravougaonik(a,nizk[i],n,i)==true)
        {
            br++;
           // cout<<i<<endl;
        }

        }

   }
    cout<<br<<endl;

    return 0;
}