D - .. (Double Dots) Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 400

問題文

あるところに、洞窟があります。

洞窟には N 個の部屋と M 本の通路があり、部屋には 1 から N の、通路には 1 から M の番号がついています。通路 i は部屋 A_i と部屋 B_i を双方向につないでいます。どの 2 部屋間も、通路をいくつか通って行き来できます。部屋 1 は洞窟の入り口がある特別な部屋です。

洞窟の中は薄暗いので、部屋 1 以外の各部屋に 1 つずつ道しるべを設けることにしました。各部屋の道しるべは、その部屋と通路で直接つながっている部屋の 1 つを指すように置きます。

洞窟の中は危険なので、部屋 1 以外のどの部屋についても以下の条件を満たすことが目標です。

  • その部屋から出発し、「いまいる部屋にある道しるべを見て、それが指す部屋に移動する」ことを繰り返すと、部屋 1 に最小の移動回数でたどり着く。

目標を達成できる道しるべの配置が存在するか判定し、存在するならばそのような配置を 1 つ出力してください。

制約

  • 入力はすべて整数
  • 2 \leq N \leq 10^5
  • 1 \leq M \leq 2 \times 10^5
  • 1 \leq A_i, B_i \leq N\ (1 \leq i \leq M)
  • A_i \neq B_i\ (1 \leq i \leq M)
  • どの 2 部屋間も、通路をいくつか通って行き来できる

入力

入力は以下の形式で標準入力から与えられる。

N M
A_1 B_1
:
A_M B_M

出力

目標を達成できる道しるべの配置が存在しなければ No を出力せよ。

存在する場合、N 行出力せよ。1 行目には Yes を、i\ (2 \leq i \leq N) 行目には部屋 i の道しるべが指す部屋の番号を出力せよ。


入力例 1

4 4
1 2
2 3
3 4
4 2

出力例 1

Yes
1
2
2

出力例のように道しるべを置いたとき、

  • 部屋 2 から出発した場合 (2) \to 11 回移動することになり、これが最小です。
  • 部屋 3 から出発した場合 (3) \to 2 \to 12 回移動することになり、これが最小です。
  • 部屋 4 から出発した場合 (4) \to 2 \to 12 回移動することになり、これが最小です。

したがって、出力例のように道しるべを置けば目標を達成できます。


入力例 2

6 9
3 4
6 1
2 4
5 3
4 6
1 5
6 2
4 5
5 6

出力例 2

Yes
6
5
5
1
1

答えが複数あり得る場合、どれを出力してもかまいません。

Score: 400 points

Problem Statement

There is a cave.

The cave has N rooms and M passages. The rooms are numbered 1 to N, and the passages are numbered 1 to M. Passage i connects Room A_i and Room B_i bidirectionally. One can travel between any two rooms by traversing passages. Room 1 is a special room with an entrance from the outside.

It is dark in the cave, so we have decided to place a signpost in each room except Room 1. The signpost in each room will point to one of the rooms directly connected to that room with a passage.

Since it is dangerous in the cave, our objective is to satisfy the condition below for each room except Room 1.

  • If you start in that room and repeatedly move to the room indicated by the signpost in the room you are in, you will reach Room 1 after traversing the minimum number of passages possible.

Determine whether there is a way to place signposts satisfying our objective, and print one such way if it exists.

Constraints

  • All values in input are integers.
  • 2 \leq N \leq 10^5
  • 1 \leq M \leq 2 \times 10^5
  • 1 \leq A_i, B_i \leq N\ (1 \leq i \leq M)
  • A_i \neq B_i\ (1 \leq i \leq M)
  • One can travel between any two rooms by traversing passages.

Input

Input is given from Standard Input in the following format:

N M
A_1 B_1
:
A_M B_M

Output

If there is no way to place signposts satisfying the objective, print No.

Otherwise, print N lines. The first line should contain Yes, and the i-th line (2 \leq i \leq N) should contain the integer representing the room indicated by the signpost in Room i.


Sample Input 1

4 4
1 2
2 3
3 4
4 2

Sample Output 1

Yes
1
2
2

If we place the signposts as described in the sample output, the following happens:

  • Starting in Room 2, you will reach Room 1 after traversing one passage: (2) \to 1. This is the minimum number of passages possible.
  • Starting in Room 3, you will reach Room 1 after traversing two passages: (3) \to 2 \to 1. This is the minimum number of passages possible.
  • Starting in Room 4, you will reach Room 1 after traversing two passages: (4) \to 2 \to 1. This is the minimum number of passages possible.

Thus, the objective is satisfied.


Sample Input 2

6 9
3 4
6 1
2 4
5 3
4 6
1 5
6 2
4 5
5 6

Sample Output 2

Yes
6
5
5
1
1

If there are multiple solutions, any of them will be accepted.