#include <bits/stdc++.h>
#define ll long long
#define pr pair<int,int>
#define F first
#define S second
using namespace std;

int G[510*510],H[510][510];
bool occupy[510][510];
int n,l,r,x;
ll ans;
vector<pr> cd{{0,1},{1,0},{0,-1},{-1,0}};

void dfs(int l,int r){
   int temp=H[l][r]+occupy[l][r];
   for(int i=0;i<4;i++){
      int l1=l+cd[i].F,r1=r+cd[i].S;
      if(H[l1][r1]>temp){
         H[l1][r1]=temp;
         dfs(l1,r1);
      }
   }
}
void solve(){
    cin>>n;
    for(int i=1;i<=n;i++){
      for(int j=1;j<=n;j++){
         occupy[i][j]=true;
         if(min(i-1,n-i)<min(j-1,n-j))
           H[i][j]=min(i-1,n-i);
         else
           H[i][j]=min(j-1,n-j);
      }
    }
    for(int i=1;i<=n*n;i++){
       cin>>x;
       l=ceil((long double)x/(long double)n);
       r=x%n;
       if(!r) r=n;
       ans+=H[l][r];
       occupy[l][r]=false;
       dfs(l,r);

    }
    cout<<ans<<"\n";
}
int main(){
   
   solve();
} 
