import sys

_INPUT_LINES = sys.stdin.read().splitlines()
input = iter(_INPUT_LINES).__next__


def go():
    n = int(input())
    # n, h, l, r = map(int, input().split())
    # a = list(map(int, input().split()))

    ranks = [0]*n
    e = [0]*n
    for i in range(n-1):
        x,y = map(int, input().split())
        x,y = x-1,y-1
        e[x]=i
        e[y]=i
        ranks[x]+=1
        ranks[y]+=1
    leafs= [i for i in range(n) if ranks[i]==1]
    if len(leafs)==2:
        return '\n'.join(map(str,range(n-1)))
    else:
        vals = [-1]*(n-1)
        for ind,i in enumerate(leafs[:3]):
            j = e[i]
            vals[j]=ind
        ind=3
        for i in range(n-1):
            if vals[i]<0:
                vals[i]=ind
                ind+=1
        return '\n'.join(map(str, vals))

# t = int(input())
# ans=[]
for _ in range(1):
    print(go())
# print('\n'.join(ans))