#include<bits/stdc++.h>
using namespace std;
int dis[502][502], N;
bool occ[502][502];
typedef pair<int, int>pi;
int dirx[]= {0, 1, 0, -1};
int diry[]= {1, 0, -1, 0};
void bfs(int x, int y)
{
    queue<pi>q;
    q.push({x, y});
    while(!q.empty())
    {
        x= q.front().first;
        y= q.front().second;
        q.pop();
        int z= dis[x][y]+occ[x][y];
        for(int i=0; i<4; i++)
        {
            int x1= x+dirx[i];
            int y1= y+diry[i];
            if(x1>=1 && x1<=N && y1>=1 && y1<=N && dis[x1][y1]>z)
            dis[x1][y1]= z, q.push({x1, y1});
        }
    }
    return;
}
int main()
{
    int x, y, z;
    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)), occ[i][j]= 1;
    int res= 0;
    for(int i=1; i<=N*N; i++)
    {
        scanf("%d", &z);
        x= (z+N-1)/N;
        y= z-(x-1)*N;
        res+= dis[x][y];
        occ[x][y]= 0;
        bfs(x, y);
    }
    printf("%d\n", res);
    return 0;
}
