AT_abc232_c [ABC232C] Graph Isomorphism
Description
[problemUrl]: https://atcoder.jp/contests/abc232/tasks/abc232_c
高橋君と青木君は、それぞれ $ N $ 個のボールに $ M $ 本のひもを取り付けたおもちゃを持っています。
高橋君のおもちゃにおいて、ボールには $ 1,\ \dots,\ N $ と番号が付けられており、$ i\ \,\ (1\ \leq\ i\ \leq\ M) $ 本目のひもはボール $ A_i $ とボール $ B_i $ を結んでいます。
青木君のおもちゃにおいても同様に、ボールには $ 1,\ \dots,\ N $ と番号が付けられており、$ i\ \,\ (1\ \leq\ i\ \leq\ M) $ 本目のひもはボール $ C_i $ とボール $ D_i $ を結んでいます。
それぞれのおもちゃにおいて、同一のボールを結ぶようなひもは存在せず、$ 2 $ つのボールを $ 2 $ 本以上の異なるひもが結んでいることはありません。
すぬけ君は、$ 2 $ 人のおもちゃが同じ形であるかどうか気になっています。
ここで、$ 2 $ 人のおもちゃが同じ形であるとは、以下の条件を満たす数列 $ P $ が存在することをいいます。
- $ P $ は $ (1,\ \dots,\ N) $ を並べ替えて得られる。
- 任意の $ 1 $ 以上 $ N $ 以下の整数 $ i,\ j $ に対し、以下が成り立つ。
- 高橋君のおもちゃにおいてボール $ i,\ j $ がひもで繋がれていることと、青木君のおもちゃにおいてボール $ P_i,\ P_j $ がひもで繋がれていることは同値である。
$ 2 $ 人のおもちゃが同じ形であるなら `Yes`、そうでないなら `No` と出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ B_1 $ $ \vdots $ $ A_M $ $ B_M $ $ C_1 $ $ D_1 $ $ \vdots $ $ C_M $ $ D_M $
Output Format
$ 2 $ 人のおもちゃが同じ形であるなら `Yes`、そうでないなら `No` と出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 8 $
- $ 0\ \leq\ M\ \leq\ \frac{N(N\ -\ 1)}{2} $
- $ 1\ \leq\ A_i\ \lt\ B_i\ \leq\ N\ \,\ (1\ \leq\ i\ \leq\ M) $
- $ (A_i,\ B_i)\ \neq\ (A_j,\ B_j)\ \,\ (i\ \neq\ j) $
- $ 1\ \leq\ C_i\ \lt\ D_i\ \leq\ N\ \,\ (1\ \leq\ i\ \leq\ M) $
- $ (C_i,\ D_i)\ \neq\ (C_j,\ D_j)\ \,\ (i\ \neq\ j) $
- 入力は全て整数である。
### Sample Explanation 1
高橋君のおもちゃは下図の左側のような形をしており、青木君のおもちゃは下図の右側のような形をしています。 !\[yes1\](https://img.atcoder.jp/ghi/abc232c\_yes1.jpg) 次の図から、$ 2 $ 人のおもちゃが同じ形であることがわかります。例えば $ P\ =\ (3,\ 2,\ 1,\ 4) $ とすると問題文中の条件を満たします。 !\[yes2\](https://img.atcoder.jp/ghi/abc232c\_yes2.jpg)
### Sample Explanation 2
$ 2 $ 人のおもちゃは同じ形ではありません。 !\[no\](https://img.atcoder.jp/ghi/abc232c\_no.jpg)