#include <bits/stdc++.h>
using namespace std;
int n, f[1000005], fa[1000005], m1[1000005], m2[1000005];
int main() {
  scanf("%d", &n);
  for (int i = 2, a; i <= n + 1; i++) {
    scanf("%d", &fa[i]);
    f[i] = 1;
    int t = i;
    while (t != 1) {
      if (f[t] > m1[fa[t]])
        m2[fa[t]] = m1[fa[t]], m1[fa[t]] = f[t];
      else
        m2[fa[t]] = max(m2[fa[t]], f[t]);
      if (max(m2[fa[t]] + 1, m1[fa[t]]) == f[fa[t]])
        break;
      else
        f[fa[t]] = max(m2[fa[t]] + 1, m1[fa[t]]);
      t = fa[t];
    }
    printf("%d ", m1[1]);
  }
  puts("");
  return 0;
}
