#abc168d. [abc168_d].. (Double Dots)

[abc168_d].. (Double Dots)

問題文

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

洞窟には NN 個の部屋と MM 本の通路があり、部屋には 11 から NN の、通路には 11 から MM の番号がついています。通路 ii は部屋 AiA_i と部屋 BiB_i を双方向につないでいます。どの 22 部屋間も、通路をいくつか通って行き来できます。部屋 11 は洞窟の入り口がある特別な部屋です。

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

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

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

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

制約

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

入力

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

NN MM A1A_1 B1B_1 :: AMA_M BMB_M

出力

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

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


入力例 1

4 4
1 2
2 3
3 4
4 2

出力例 1

Yes
1
2
2

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

  • 部屋 22 から出発した場合 (2)to1(2) \\to 111 回移動することになり、これが最小です。
  • 部屋 33 から出発した場合 (3)to2to1(3) \\to 2 \\to 122 回移動することになり、これが最小です。
  • 部屋 44 から出発した場合 (4)to2to1(4) \\to 2 \\to 122 回移動することになり、これが最小です。

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


入力例 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

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