小憶和小艾生活在樹上。這棵樹 $T$ 有 $n$ 個節點,由 $n - 1$ 條邊連接。現在樹上有一個排列 $p$,每次小艾可以選擇一條邊 $(u, v) \in T$,將 $p_u$ 與 $p_v$ 交換,小艾的任務是將排列完成排序。為了估算自己至少要交換多少次,小艾找小憶請教,小憶經過思考,寫下了這個式子:
$$\frac{1}{2} \sum_{i=1}^{n} \text{dist}(i, p_i)$$
小艾經過嘗試,發現很巧的是,當前的這個排列剛好達到了小憶給出的下界!他想考考你,你能不能給出一個達到這一下界的排序方案呢?特別地,她還希望你給出的方案的字典序最小。我們認為樹上的邊是從 $1$ 至 $n - 1$ 編號的,方案的字典序是由依次比較操作的邊的編號決定的。
輸入格式
第一行輸入一個正整數 $n$,表示樹的節點數。
接下來 $n - 1$ 行每行輸入兩個正整數 $u_i, v_i$,表示第 $i$ 條邊($1 \le i \le n - 1$)。
接下來一行 $n$ 個正整數,表示排列 $p$。
輸出格式
輸出一行。按順序輸出字典序最小的解中,操作的邊的編號。
範例
範例 1 輸入
5 5 2 3 2 2 4 1 3 2 1 5 3 4
範例 1 輸出
2 1 3 4 2
說明 1
初始序列為 $2, 1, 5, 3, 4$。接下來的 $5$ 次操作過程中,序列變為:
- $2, 5, 1, 3, 4$
- $2, 4, 1, 3, 5$
- $2, 3, 1, 4, 5$
- $1, 3, 2, 4, 5$
- $1, 2, 3, 4, 5$
範例 2
見選手目錄下的 tree/tree2.in 與 tree/tree2.ans。
子任務
對於 $100\%$ 的資料,保證 $1 \le n \le 10^3$,且給出的排列可以在 $\frac{1}{2} \sum_{i=1}^{n} \text{dist}(i, p_i)$ 次操作內完成排序。
| 測試點 | $n$ | 特殊限制 |
|---|---|---|
| 1, 2 | $= 5$ | |
| 3, 4 | $= 30$ | |
| 5 | $= 10^2$ | |
| 6 | $= 10^3$ | A0 |
| 7 | A1 | |
| 8 | B0 | |
| 9 | B1 | |
| 10 |
特殊限制:
- A 表示邊集為 $\{(1, 2), (2, 3), \dots, (n - 1, n)\}$。
- B 表示邊集為 $\{(1, 2), (1, 3), \dots, (1, n)\}$。
- 0 表示保證邊按照前述所給的順序給出。
- 1 表示可能以任何一個順序給出。