#include <bits/stdc++.h>
using namespace std;
const int maxn=510;
int h[maxn][maxn],a[maxn][maxn],p[maxn*maxn];
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int n;
void dfs(int x,int y)
{
    int cost,nx,ny;
    cost=h[x][y]+a[x][y];
    for (int d=0;d<4;d++) {
        nx=dx[d]+x; ny=dy[d]+y;
        if (nx<=0||nx>=n||ny<=0||ny>=n) continue ;
        if (cost<h[nx][ny]) {
            h[nx][ny]=cost;
            dfs(nx,ny);
        }
    }
}
int main()
{
  //  freopen("text.in","r",stdin);
    int ans,x,y;
    scanf("%d",&n);
    for (int i=1;i<=n*n;i++) {
        scanf("%d",&p[i]);
    }
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=n;j++) {
            h[i][j]=min(i-1,min(j-1,min(n-i,n-j)));
            a[i][j]=1;
        }
    }
    ans=0;
    for (int i=1;i<=n*n;i++) {
        x=(p[i]-1)/n; y=p[i]-x*n; x++;
        a[x][y]=0;
        dfs(x,y);
        ans+=h[x][y];
    }
    printf("%d\n",ans);
    return 0;
}
