AT_abc168_d [ABC168D] .. (Double Dots)

Description

[problemUrl]: https://atcoder.jp/contests/abc168/tasks/abc168_d あるところに、洞窟があります。 洞窟には $ N $ 個の部屋と $ M $ 本の通路があり、部屋には $ 1 $ から $ N $ の、通路には $ 1 $ から $ M $ の番号がついています。通路 $ i $ は部屋 $ A_i $ と部屋 $ B_i $ を双方向につないでいます。どの $ 2 $ 部屋間も、通路をいくつか通って行き来できます。部屋 $ 1 $ は洞窟の入り口がある特別な部屋です。 洞窟の中は薄暗いので、部屋 $ 1 $ 以外の各部屋に $ 1 $ つずつ道しるべを設けることにしました。各部屋の道しるべは、その部屋と通路で直接つながっている部屋の $ 1 $ つを指すように置きます。 洞窟の中は危険なので、部屋 $ 1 $ 以外のどの部屋についても以下の条件を満たすことが目標です。 - その部屋から出発し、「いまいる部屋にある道しるべを見て、それが指す部屋に移動する」ことを繰り返すと、部屋 $ 1 $ に最小の移動回数でたどり着く。 目標を達成できる道しるべの配置が存在するか判定し、存在するならばそのような配置を $ 1 $ つ出力してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ A_1 $ $ B_1 $ $ : $ $ A_M $ $ B_M $

Output Format

目標を達成できる道しるべの配置が存在しなければ `No` を出力せよ。 存在する場合、$ N $ 行出力せよ。$ 1 $ 行目には `Yes` を、$ i\ (2\ \leq\ i\ \leq\ N) $ 行目には部屋 $ i $ の道しるべが指す部屋の番号を出力せよ。

Explanation/Hint

### 制約 - 入力はすべて整数 - $ 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 $ 部屋間も、通路をいくつか通って行き来できる ### Sample Explanation 1 出力例のように道しるべを置いたとき、 - 部屋 $ 2 $ から出発した場合 $ (2)\ \to\ 1 $ と $ 1 $ 回移動することになり、これが最小です。 - 部屋 $ 3 $ から出発した場合 $ (3)\ \to\ 2\ \to\ 1 $ と $ 2 $ 回移動することになり、これが最小です。 - 部屋 $ 4 $ から出発した場合 $ (4)\ \to\ 2\ \to\ 1 $ と $ 2 $ 回移動することになり、これが最小です。 したがって、出力例のように道しるべを置けば目標を達成できます。 ### Sample Explanation 2 答えが複数あり得る場合、どれを出力してもかまいません。