#include <bits/stdc++.h>
using namespace std;
typedef int64_t ll;
typedef pair<int,int> P;
int n,ans,T[500][500],p;
bool ab[500][500];

int main(){
  P d[4]={{1,0},{0,1},{-1,0},{0,-1}};
  cin >> n;
  for(int i=0;i<n;i++) for(int j=0;j<n;j++) T[i][j]=min(min(i,n-1-i),min(j,n-1-j));
  for(int i=0;i<n*n;i++){
    cin >> p;
    p--;
    int x=p/n,y=p%n;
    ans+=T[x][y];
    ab[x][y] = true;
    queue<P> q;
    q.push({x,y});
    while(!q.empty()){
      int vx=q.front().first,vy=q.front().second;
      q.pop();
      int a=T[vx][vy];
      if(!ab[vx][vy])a++; //!abなら(wx,wy)は(vx,vy)に嫌われる
      for(int r=0;r<4;r++){
        int wx=vx+d[r].first,wy=vy+d[r].second;
        if(wx>=0 && wx<n && wy>=0 && wy<n && T[wx][wy]>a){ //Tが更新されるときだけqにpushする
          T[wx][wy]=a;
          q.push({wx,wy});
        }
      }
    }
  }
  cout << ans << endl;
}
