#include <bits/stdc++.h>
#define endl '\n'
#define ll long long
using namespace std;
vector<vector<int>> ofo;
vector<vector<bool>>kayn;
int n;
void update(int a, int b){
	int sd=kayn[a][b]+ofo[a][b];
	if (a>0){
		if (ofo[a-1][b]>sd){
			ofo[a-1][b]=sd;
			update(a-1,b);
		}
	}
	if(a<n-1){
		if (ofo[a+1][b]>sd){
			ofo[a+1][b]=sd;
			update(a+1,b);
		}
	}
	if(b>0){
		if (ofo[a][b-1]>sd){
			ofo[a][b-1]=sd;
			update(a,b-1);
		}
	}
	if(b<n-1){
		if (ofo[a][b+1]>sd){
			ofo[a][b+1]=sd;
			update(a,b+1);
		}
	}
}
void lok(){
	cin>>n;
	ofo.resize(n);
	kayn.resize(n);
	for(int i=0;i<n;i++){
		ofo[i].resize(n);
		for(int o=0;o<n;o++){
			int ba=min(o,n-o-1);
			int da=min(i,n-i-1);
			ofo[i][o]=min(ba,da);
		}
	}
	for(int i=0;i<n;i++){
		kayn[i].resize(n);
		kayn[i].assign(kayn[i].size(),true);
	}
	int p;
	ll ans=0;
	for(ll o=0;o<n*n;o++){
		cin>>p;
		int y=(p-1)/n;
		int x=(p-1)%n;
		ans+=ofo[x][y];
		kayn[x][y]=false;
		update(x,y);
	}
	cout<<ans<<endl;
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	lok();
	return 0;
}
