문제 143
친구와 적의 관계
사람 $N$명을 두 색 $0$과 $1$ 중 하나로 칠하려고 한다. 사람의 번호는 $0$부터 $N-1$까지이다. 같은 색인 두 사람은 친구, 다른 색인 두 사람은 적이라고 하자.
다음 $Q$개의 연산을 순서대로 처리해 보자. 연산에서 $u$와 $v$는 사람의 번호, $w$는 두 사람의 색을 XOR한 값을 나타내는 정수이다.
- $\texttt{F}\ u\ v$: $u$와 $v$가 친구라는 관계를 추가한다.
- $\texttt{E}\ u\ v$: $u$와 $v$가 적이라는 관계를 추가한다.
- $\texttt{M}\ u\ v\ w$: 두 사람의 색을 XOR한 값이 $w$라는 관계를 추가한다.
- $\texttt{R}\ u\ v$: 두 사람의 색이 같은지, 다른지 판별한다.
새 관계가 기존에 받아들인 관계와 모순된다면 그 관계만 거절한다. 알려진 관계만으로 색의 같고 다름을 결정하지 못할 수도 있다.
입력
첫 번째 줄에 정수 $N$, $Q$가 공백으로 구분되어 주어진다. $(1\le N,Q\le200\,000)$
두 번째 줄부터 $Q$개의 줄에 걸쳐 본문에서 설명한 형식의 연산이 주어진다. 각 연산의 값은 공백으로 구분되어 주어진다. $(0\le u,v<N; w\in\{0,1\})$
출력
F, E, M 연산은 관계를 받아들였으면 $1$을, 거절했으면 $0$을 출력한다. R 연산은 두 사람의 색이 같으면 $0$을, 다르면 $1$을, 지금까지의 관계로 알 수 없으면 $-1$을 출력한다.
각 연산의 결과를 한 줄에 출력한다.
예제 입력 1
4 9 R 0 1 F 0 1 E 1 2 R 0 2 M 0 2 0 R 0 2 E 3 3 F 2 2 R 3 3
예제 출력 1
-1 1 1 1 0 1 0 1 0