#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,dis[1005][1005],vis[1005][1005],a[1000005],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
void dfs(int x,int y)
{
	int fl=0;
	for(int k=0;k<4;k++)
	{
		int xx=x+dx[k],yy=y+dy[k];
	//	if(xx<=0||xx>n||yy<=0||yy>n) continue;
		if(dis[xx][yy]+vis[x][y]<dis[x][y])
		{
			dis[x][y]=dis[xx][yy]+vis[x][y];
			fl=1;
		}
	}
	if(fl)
	{
		for(int k=0;k<4;k++)
		{
			int xx=x+dx[k],yy=y+dy[k];
			if(xx<=0||xx>n||yy<=0||yy>n) continue;
			dfs(xx,yy);
		}
	}
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			vis[i][j]=1;
			dis[i][j]=min(min(i-1,n-i),min(j-1,n-j))+1;
		}
	for(int i=1;i<=n*n;i++)
		scanf("%d",&a[i]);
	int ans=0;
	for(int i=1;i<=n*n;i++)
	{
		int x=(a[i]-1)/n+1,y=(a[i]-1)%n+1;
		vis[x][y]=0;
		ans+=dis[x][y]-1;
	//	printf("i=%d,a=%d,x=%d,y=%d,dis=%d\n",i,a[i],x,y,dis[x][y]);
		dfs(x,y);
	}
	printf("%d",ans);
	return 0;
}