from collections import deque n = int(input()) edges = [[] for _ in range(n)] for _ in range(n - 1): u, v = map(int, input().split()) u -= 1 v -= 1 edges[u].append(v) edges[v].append(u) queue = deque() queue.append(0) R = [-1] * n R[0] = 0 leaf = [] while queue: pos = queue.popleft() le = True for npos in edges[pos]: if R[npos] != -1: continue le = False R[npos] = R[pos] + 1 queue.append(npos) if le: leaf.append(pos) queue = deque() L = [-1] * n for l in leaf: L[l] = 0 queue.append(l) while queue: pos = queue.popleft() for npos in edges[pos]: if L[npos] != -1: continue L[npos] = L[pos] + 1 queue.append(npos) for l, r in zip(L, R): print(min(l, r))