같은 묶음
번호가 0부터 n까지 붙어 있는 대상들이 있다. 처음에는 각 번호가 모두 따로 떨어져 있어, 하나의 번호가 하나의 묶음을 이룬다.
이후 여러 개의 지시가 차례대로 주어진다. 지시는 두 종류이다.
하나는 두 번호가 속한 묶음을 하나로 합치는 지시이다. 이때 두 번호가 이미 같은 묶음에 속해 있더라도, 지시는 그대로 처리된다.
다른 하나는 두 번호가 현재 같은 묶음 안에 들어 있는지를 묻는 지시이다.
주어진 지시들을 순서대로 처리하면서, 확인 지시가 들어올 때마다 두 번호가 같은 묶음에 속하는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 n, m이 주어진다. m은 입력으로 주어지는 지시의 개수이다.
다음 m개의 줄에는 각각 하나의 지시가 주어진다.
0 a b:a가 속한 묶음과b가 속한 묶음을 하나로 합친다.1 a b:a와b가 같은 묶음에 속해 있는지 확인한다.
출력
1로 시작하는 지시에 대해, a와 b가 같은 묶음에 포함되어 있으면 YES를, 그렇지 않으면 NO를 출력한다.
각 결과는 한 줄에 하나씩 출력한다.
제한
- 1 ≤ n ≤ 1,000,000
- 1 ≤ m ≤ 100,000
- 0 ≤ a, b ≤ n
- a, b는 정수
- a와 b는 같을 수도 있다.
예제 입력 1
7 8
0 1 3
1 1 7
0 7 6
1 7 1
0 3 7
0 4 2
0 1 1
1 1 1
예제 출력 1
NO
NO
YES