#include <bits/stdc++.h>
using namespace std;

int n;
int a[250005];
int id[505][505];
int dis[505][505],res[505][505];
bool lgl[505][505];
int dx[]={1,0,-1,0},dy[]={0,1,0,-1};

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			dis[i][j]=min(min(i-1,n-i),min(j-1,n-j));
		}
	}
	for(int i=1;i<=n*n;i++){
		int s;
		scanf("%d",&s);
		int x=(s-1)/n+1,y=(s-1)%n+1;
		res[x][y]=dis[x][y];
		lgl[x][y]=1;
		queue<pair<int,int>> q;
		q.emplace(x,y);
		while(q.size()){
			pair<int,int> T=q.front();
			q.pop();
			int x=T.first,y=T.second;
			int to=dis[x][y]+(!lgl[x][y]);
			for(int i=0;i<4;i++){
				int nx=x+dx[i],ny=y+dy[i];
				if(nx<1||nx>n||ny<1||ny>n){
					continue;
				}
				if(dis[nx][ny]>to){
					dis[nx][ny]=to;
					q.emplace(nx,ny);
				}
			}
		}
	}
	int sum=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			sum+=res[i][j];
		}
	}
	printf("%d\n",sum);
	return 0;
}