PivotOJ

Skrivača

시간 제한: 1000ms메모리 제한: 1024MB출처: COCI 2022-2023BOJ 27344

문제

Marin and Luka are playing a popular kids game called Hide and Seek (Skrivača). They are playing in their house which has nn rooms, and mm pairs of rooms are connected by a door. Rooms are labeled from 11 to nn and for each pair of rooms there exists a path from one room to another.

Luka has thought of a hiding strategy: when Marin enters room vv, Luka will hide in room ava_v. At the start of the game Marin chooses his starting room v0v_0 and Luka hides in the room av0a_{v_0}. In each step of the game, firstly Marin chooses a room uu adjecent to his current room and enters it. After that, Luka knows Marin is in room uu so by his hiding strategy he hides in room aua_u. Notice that Luka can choose any path to reach room aua_u and that in one step of the game he can pass through an arbitrary number of rooms.

Marin will find Luka when both of them are located in the same room, at that moment the game ends.

Marin found out about Luka’s hiding strategy so he wants you to determine for each starting room if Marin can find Luka in a finite amount of steps, and if he can, determine the least amount of steps necessary if both of them play optimally. (Marin plays such that he finds Luka in the least amount of steps and Luka plays such that Marin finds him in the most amount of steps).

입력

In the first line there are integers nn, mm (1 ≤ n ≤ 2 · 10^5, n - 1 ≤ m ≤ \min(5 · 10^5 , \frac{n·(n-1)}{2}), the number of rooms and the number of pairs of connected rooms.

In the second line there are nn integers aia_i (1 ≤ a_i ≤ n), describing Luka’s hiding strategy.

In ii-th of the next mm lines there are integers xix_i, yiy_i (1 ≤ x_i , y_i ≤ n, xiyix_i \ne y_i), denoting that room xix_i and room yiy_i are connected. Between each pair of rooms there will be at most one connection.

출력

In the first and only line print n numbers, where the ii-th number represents the least amount of steps necessary for Marin to find Luka if Marin starts in room ii, or 1-1 if Marin can’t find Luka.

힌트

Clarification of the second example: Marin enters room 88 from room 44 in the first step, and in the secend he goes back to room 44. Luka needs to pass through room 44 to get from room 77 to room 11 so Marin can find Luka in 22 steps.

예제

예제 1

입력
4 4
3 4 1 2
1 2
2 3
3 4
4 1
출력
-1 -1 -1 -1

예제 2

입력
8 9
2 3 2 1 6 5 6 7
1 2
1 3
2 4
3 4
4 5
4 6
6 7
5 7
4 8
출력
1 2 2 2 1 1 1 1

예제 3

입력
9 8
1 9 1 1 1 9 9 9 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
출력
0 1 1 2 1 1 2 1 1
코드를 제출하려면 로그인하세요.