#include <bits/stdc++.h>
using namespace std;
int pl[1000010], *it = pl, *f[1000010], n, h[1000010], v[1000010 * 2],
                 nxt[1000010 * 2], ec, l[1000010], p[1000010], r[1000010];
void add(int x, int y) {
  v[++ec] = y;
  nxt[ec] = h[x];
  h[x] = ec;
}
void d1(int x, int fa) {
  for (int i = h[x]; i; i = nxt[i])
    if (v[i] != fa) {
      d1(v[i], x);
      if (l[p[x]] < l[v[i]]) p[x] = v[i];
    }
  l[x] = l[p[x]] + 1;
}
void d2(int x, int fa) {
  *f[x] = 1;
  if (p[x]) {
    f[p[x]] = f[x] + 1;
    d2(p[x], x);
    r[x] = r[p[x]] + 1;
  }
  for (int i = h[x]; i; i = nxt[i])
    if (v[i] != fa && v[i] != p[x]) {
      f[v[i]] = it;
      it += l[v[i]];
      d2(v[i], x);
      for (int j = 1; j <= l[v[i]]; j++) {
        f[x][j] += f[v[i]][j - 1];
        if (f[x][j] > f[x][r[x]] || (f[x][j] == f[x][r[x]] && j < r[x]))
          r[x] = j;
      }
    }
  if (f[x][r[x]] == 1) r[x] = 0;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    add(x, y);
    add(y, x);
  }
  d1(1, 0);
  f[1] = it;
  it += l[1];
  d2(1, 0);
  for (int i = 1; i <= n; i++) printf("%d\n", r[i]);
}
