AT_soundhound2018_summer_final_d Propagating Edges

Description

[problemUrl]: https://atcoder.jp/contests/soundhound2018-summer-final/tasks/soundhound2018_summer_final_d $ N $ 頂点 $ 0 $ 辺の無向グラフが与えられます。以下のクエリを $ Q $ 個処理して下さい。 - addクエリ($ type\ =\ 1,\ u,\ v $): $ u $ と $ v $ の間に辺が無ければ辺を貼る。 - completeクエリ($ type\ =\ 2,\ u,\ v\ =\ 0 $): 全ての頂点対 $ a,\ b $ について以下を行う, $ u,\ a,\ b $ がすべて連結で,かつ $ a,\ b $ 間に辺がない場合,$ a,\ b $ の間に辺を貼る。 - checkクエリ($ type\ =\ 3,\ u,\ v $): $ u,\ v $ が与えられる。$ u $ と $ v $ を直接結ぶ辺がある場合`Yes`、そうでない場合`No`を出力する。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ Q $ $ type_1 $ $ u_1 $ $ v_1 $ $ type_2 $ $ u_2 $ $ v_2 $ $ : $ $ type_Q $ $ u_Q $ $ v_Q $

Output Format

各checkクエリに対し、`Yes`か`No`を出力してください。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 100,000 $ - $ 1\ \leq\ Q\ \leq\ 200,000 $ - $ type_i\ =\ 1,\ 2,\ 3 $ - $ 1\ \leq\ u_i\ \leq\ N $ - add, checkクエリにおいて $ 1\ \leq\ v_i\ \leq\ N $ かつ $ u_i\ \neq\ v_i $ - completeクエリにおいて $ v_i\ =\ 0 $ - 入力される値は全て整数である ### Sample Explanation 1 $ 1,\ 2 $ つ目のクエリで$ (1,\ 2) $, $ (2,\ 3) $に辺が張られます。 そして、$ 5 $ つ目のクエリで$ (1,\ 3) $ 間に辺が張られます。