#include <bits/stdc++.h>
using namespace std;
const int inf = (1 << 28);
int N, x[510], d[510][510], a[510][510];
long long ans[510];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> N;
  int i, j, k;
  for (i = 1; i <= N; i++)
    for (j = 1; j <= N; j++) cin >> a[i][j];
  for (i = 1; i <= N; i++) cin >> x[i];
  for (i = 1; i <= N; i++)
    for (j = 1; j <= N; j++)
      if (i != j) d[i][j] = inf;
  for (k = N; k > 0; k--) {
    for (i = k; i <= N; i++)
      for (j = k; j <= N; j++) {
        d[x[k]][x[i]] = min(d[x[k]][x[i]], a[x[k]][x[j]] + d[x[j]][x[i]]);
        d[x[i]][x[k]] = min(d[x[i]][x[k]], d[x[i]][x[j]] + a[x[j]][x[k]]);
      }
    for (i = k; i <= N; i++)
      for (j = k; j <= N; j++) {
        d[x[i]][x[j]] = min(d[x[i]][x[j]], d[x[i]][x[k]] + d[x[k]][x[j]]);
        ans[k] += d[x[i]][x[j]];
      }
  }
  for (i = 1; i <= N; i++) cout << ans[i] << " ";
  return 0;
}
