有 $n$ 个城市和 $m$ 条道路。每条道路都是双向的,连接两个城市。已知有 $k$ 个城市设有动漫商店。
如果你住在一个城市,如果该城市有动漫商店,你当然很了解它。你想要找到距离你所在城市最近的、且不是你所在城市的动漫商店。
对于每个城市,求出到另一个设有动漫商店的城市的最短距离。
输入格式
第一行包含三个整数 $n$、$m$ 和 $k$:分别表示城市数量、道路数量和动漫商店数量。城市编号为 $1, 2, \dots, n$。
第二行包含 $k$ 个整数:设有动漫商店的城市编号。
最后 $m$ 行描述道路。每行包含两个整数 $a$ 和 $b$:表示城市 $a$ 和 $b$ 之间有一条道路。
输出格式
输出 $n$ 个整数:对于每个城市,输出到另一个设有动漫商店的城市的最短距离。如果不存在这样的城市,则输出 $-1$。
样例
输入 1
9 6 4 2 4 5 7 1 2 1 3 1 8 2 4 3 4 5 6
输出 1
1 1 1 1 -1 1 -1 2 -1
子任务 1 (23 分)
- $1 \le k \le n \le 1000$
- $0 \le m \le 2000$
子任务 2 (16 分)
- $1 \le k \le n \le 10^5$
- $m=n-1$
- 每条道路连接城市 $i$ 和 $i+1$,其中 $i=1, 2, \dots, n-1$
子任务 3 (61 分)
- $1 \le k \le n \le 10^5$
- $0 \le m \le 2 \cdot 10^5$