def f():
    n = int(input())
    neibors = [[] for i in range(n+1)]
    orders = dict()
    for i in range(n-1):
        u, v = [int(s) for s in input().split()]
        neibors[u].append(v)
        neibors[v].append(u)
        orders[(u,v)] = i
 
    leaves = []
    for i in range(1,n+1):
        if len(neibors[i])==1:
            leaves.append(i)
    if len(leaves)<=2:
        # one line
        for i in range(n-1):
            print(i)
        return
    # len(leaves) >=3
    ans = [-1]*(n-1)
    for i in range(3):
        u = leaves[i]
        v = neibors[u][0]
        if (u,v) in orders:
            ans[orders[(u,v)]] = i
        else:
            ans[orders[(v,u)]] = i
    i = 3
    for j in range(n-1):
        if ans[j] >= 0:
            continue
        ans[j] = i
        i += 1
    for a in ans:
        print(a)
 
 
 
 
f()