import java.io.*;
import java.util.*;

public class Solution {
    public void solve() {
        int n = reader.nextInt();
        int[] deg = new int[n+1];
        int[][] edge = new int[n][2];

        int p = -1;
        for (int i = 0; i < n-1; i++) {
            int u = reader.nextInt();
            int v = reader.nextInt();

            edge[i][0] = u;
            edge[i][1] = v;

            deg[u]++;
            deg[v]++;

            if (deg[u] >= 3) p = u;
            if (deg[v] >= 3) p = v;
        }

        int[] res = new int[n];
        Arrays.fill(res, -1);
        int idx = 0;
        for (int i = 0; i < n-1; i++) {
            int u = edge[i][0];
            int v = edge[i][1];
            if (u == p || v == p) {
                res[i] = idx++;
            }
        }
        for (int i = 0; i < n-1; i++) {
            if (res[i] == -1) {
                res[i] = idx++;
            }
            writer.println(res[i]);
        }
    }

    private InputReader reader;
    private PrintWriter writer;

    public Solution(InputReader reader, PrintWriter writer) {
        this.reader = reader;
        this.writer = writer;
    }

    public static void main(String[] args) {
        InputReader reader = new InputReader(System.in);
        PrintWriter writer = new PrintWriter(System.out);

        Solution solution = new Solution(reader, writer);
        solution.solve();

        writer.flush();
    }

    static class InputReader {
        private static final int BUFFER_SIZE = 1 << 20;

        private BufferedReader reader;
        private StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), BUFFER_SIZE);
            tokenizer = null;
        }

        public String nextToken() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException();
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(nextToken());
        }
    }
}
