import sys from collections import deque def main(): n = int(sys.stdin.readline()) adj = [[] for _ in range(n + 1)] for _ in range(n - 1): x, y = map(int, sys.stdin.readline().split()) adj[x].append(y) adj[y].append(x) # Compute R_i (distance from root) r = [-1] * (n + 1) q = deque() q.append(1) r[1] = 0 while q: u = q.popleft() for v in adj[u]: if r[v] == -1: r[v] = r[u] + 1 q.append(v) # Find all leaves leaves = [i for i in range(1, n + 1) if len(adj[i]) == 1] # Compute L_i (distance to nearest leaf) l = [-1] * (n + 1) q = deque() for leaf in leaves: l[leaf] = 0 q.append(leaf) while q: u = q.popleft() for v in adj[u]: if l[v] == -1: l[v] = l[u] + 1 q.append(v) # Generate output for i in range(1, n + 1): print(min(r[i], l[i])) if __name__ == "__main__": main()