SOJ ONLINE JUDGE

집합 합치기

난이도: Gold V 출제자: rlatjwls7882 시간 제한: 1000 ms 메모리 제한: 512 MB
자료 구조분리 집합

처음에 $1$번부터 $N$번까지의 원소가 각각 다른 집합에 속해 있다.

$Q$개의 쿼리를 순서대로 처리하라.

쿼리는 다음 중 하나이다.

  • merge a b: $a$가 속한 집합과 $b$가 속한 집합을 합친다. $(1 \leq a,b \leq N)$
  • same a b: $a$와 $b$가 같은 집합에 속하면 1, 아니면 0을 출력한다. $(1 \leq a,b \leq N)$
  • size a: $a$가 속한 집합의 크기를 출력한다. $(1 \leq a \leq N)$

입력

첫 번째 줄에 원소의 개수 $N$과 쿼리의 개수 $Q$가 주어진다. $(1 \leq N,Q \leq 10^6)$

두 번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 하나씩 주어진다.

출력

same, size 쿼리마다 결과를 한 줄에 하나씩 출력한다.

예제 입력 1

8 10
same 1 2
merge 1 2
same 1 2
merge 2 3
size 1
size 3
merge 4 5
merge 3 5
same 1 4
size 2

예제 출력 1

0
1
3
3
1
5

제출