#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1100000;
int p[MAXN], f[MAXN], g[MAXN];
int main() {
  int n;
  scanf("%d", &n);
  f[1] = 1, g[1] = 0;
  for (int i = 2; i <= n + 1; i++) {
    scanf("%d", &p[i]);
    f[i] = 1, g[i] = 0;
    for (int v = i; v != 1; v = p[v]) {
      int tmp = f[p[v]];
      if (f[v] > g[p[v]])
        f[p[v]] = g[p[v]] = f[v];
      else
        f[p[v]] = max(f[p[v]], f[v] + 1);
      if (f[p[v]] == tmp) break;
    }
    printf("%d ", g[1]);
  }
  return 0;
}
