#include <bits/stdc++.h>
using namespace std;
const int N = 505;
int n, ANS;
bool first[N][N];
int DP[N][N];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      first[i][j] = 1;
      DP[i][j] = min(min(i - 1, n - i), min(j - 1, n - j)) + 1;
    }
  int M = n * n;
  while (M--) {
    int val;
    scanf("%d", &val);
    int x = (val - 1) % n + 1;
    int y = (val - 1) / n + 1;
    int ans = n + n;
    int pas = 0;
    for (int i = x; i <= n; i++) {
      if (ans > pas + DP[i][y]) ans = pas + DP[i][y];
      pas += first[i][y];
    }
    pas = 0;
    for (int i = x; i >= 1; i--) {
      if (ans > pas + DP[i][y]) ans = pas + DP[i][y];
      pas += first[i][y];
    }
    ans--;
    ANS += ans;
    DP[x][y] = ans;
    first[x][y] = 0;
    pas = ans;
    for (int j = y + 1; j <= n; j++) {
      pas += first[x][j];
      if (DP[x][j] > pas) DP[x][j] = pas;
    }
    pas = ans;
    for (int j = y - 1; j >= 1; j--) {
      pas += first[x][j];
      if (DP[x][j] > pas) DP[x][j] = pas;
    }
  }
  cout << ANS << endl;
}
