import java.util.*;
public class Main {
    static Map<Integer, Map<Integer, Integer>> map;
    static int cnt = 0;
    static Set<Integer> visit;
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        map = new HashMap<>();
        ArrayList<int[]> arr = new ArrayList<>();
        for (int i = 1; i <= n; i++) map.put(i, new HashMap<>());
        for (int i = 0; i < n - 1; i++) {
            int u = scan.nextInt(), v = scan.nextInt();
            int[] z = {u, v};
            arr.add(z);
            map.get(u).put(v, -1); map.get(v).put(u, -1);
        }
        visit = new HashSet<>();
        dfs(1);
        for (int[] i: arr) {
            System.out.println( map.get(i[0]).get(i[1]) );
        }
    }
    public static void dfs(int node) {
        visit.add(node);
        for (int child: map.get(node).keySet()) {
            if (!visit.contains(child)) {
                map.get(node).put(child, cnt);
                map.get(child).put(node, cnt); cnt++;
                dfs(child);
            }
        }
    }
    
}