1038 - 効率主義
問題
友情は瞬間が咲かせる花であり、時間が実らせる果実である。
── アウグスト・フォン・コッツェブー
今日はクリスマスだ。
r1825は人の名前を覚えることが苦手である。
しかし、番号を覚えることは得意だ。
hamakoでは生徒に(c|d|a|p|m|e|ei|r)####という番号が付けられている。
それを利用して覚えることにした。
ただ、このやり方にも問題があった。
それはhamakoの生徒数が非常に多いということだ。
そこで友人を関連づけをしようと考えた。
きっと効率よく覚えられるに違いない。
入力
N command1commandは以下のように入力される。
……………
commandN
unite X Y これは生徒X, Yを関連づけて覚えたことを示す。
getSize X これは生徒Xとの関連づけがつながっている生徒数を出力することを示す。
isUnited X Y これは生徒X, Yが同じ関連づけに含まれているかを求めることを示す。
出力
ans ……commandが
uniteだった場合は何も出力しない。
getSizeだった場合は生徒Xとの関連づけがつながっている生徒数を十進数の整数で出力する。
isUnitedだった場合は生徒X, Yが同じ関連づけに含まれているかを求め、含まれているならtrue、違えばfalseを出力する。
制約
$1$ ≤ $N$ ≤ $10$6生徒X, Yの入力は { c, d, a, p, m, e, ei, r } の英小文字いずれかから始まり、0000から9999の数字が続く。例えば r1825, ei1821, c0000, r9999 などが挙げられる。
少なくとも1回はgetSize, isUnitedのどちらかが入力される。
テストケース
例1
入力
4 getSize r1825 unite r1825 ei1821 getSize r1825 isUnited r1825 ei1821
出力
1 2 trueはい。