#P16380. [2024年南京集训]金属化

[2024年南京集训]金属化

题目描述

你有一棵包含 nn 个节点的树。初始时,每个节点上都有一枚宝石。

你依次对这棵树执行 qq 次操作。第 ii 次操作如下:

  1. 选择一个节点 xix_i,并将整棵树以 xix_i 为根;
  2. 对于每个节点 uu,将当前位于 uu 上的所有宝石移动到其父节点 fau\mathrm{fa}_u 上;
  3. u=xiu=x_i,即 uu 是当前的根节点,则该节点上的宝石不移动。

求完成全部操作后,每一枚宝石最终所在的节点。

输入格式

第一行包含两个整数 n,qn,q,分别表示节点数和操作数。

接下来 n1n-1 行,每行包含两个整数 u,vu,v,表示树上存在一条连接节点 uu 和节点 vv 的边。

接下来一行包含 qq 个整数

x1,x2,,xq,x_1,x_2,\ldots,x_q,

表示操作序列。

输出格式

输出 nn 个整数。第 ii 个整数 aia_i 表示初始位于节点 ii 上的宝石最终所在的节点。

样例 1

输入

5 3
1 2
1 3
2 4
2 5
3 5 4

输出

2 4 2 2 2

数据范围与约定

  • 对于 10%10\% 的数据:

    n,q100.n,q\le 100.
  • 对于 20%20\% 的数据:

    n1000.n\le 1000.
  • 对于额外 20%20\% 的数据:

    n,q50000,xi8.n,q\le 50000,\qquad x_i\le 8.
  • 对于全部测试数据:

    1n,q200000.1\le n,q\le 200000.

最后一部分数据在区间 [100000,200000][100000,200000] 内具有梯度。