시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB262946033.708%

문제

사람들이 일렬로 서 있는 $N$개의 줄이 있다. 다음 두 가지의 질의가 주어진다.

  • 1 a b: $a$와 $b$가 같은 줄에 있다면 NO를 출력한다. 그렇지 않다면 YES를 출력하고 $a$가 속한 줄과 $b$가 속한 줄을 연결한다.
    • $a$가 속한 줄의 마지막에 서 있는 사람과 $b$가 속한 줄의 첫 번째 사람을 순서대로 연결한다.
    • 줄을 합칠 때 기존의 줄의 순서는 유지한다.
  • 2 a b: $a$와 $b$가 같은 줄에 있다면 $a$와 $b$ 사이에 있는 사람들의 번호의 합을 출력한다. 그렇지 않다면 -1을 출력한다.
    • $a$와 $b$도 포함해서 계산한다.

위 질의를 해결하는 프로그램을 작성하자.

입력

첫째 줄에 사람들이 일렬로 서 있는 줄의 개수 $N$이 주어진다. $(1 \leq N \leq 200\,000)$

둘째 줄부터 $N$ 개의 줄에 걸쳐 사람들이 일렬로 서 있는 각 줄의 정보가 주어진다. 각 줄의 처음에는 줄에 속한 사람의 수 $L_i$가 주어진다. 그다음에 각 줄에 속하는 사람의 번호 $a_{ij}$가 $L_i$ 개만큼 공백으로 구분되어 주어진다. $(1 \leq L_i,\ 1 \leq a_{ij} \leq \sum_{i=1}^{N}L_i \leq 200\,000)$

$i \neq x$이거나 $j \neq y$이면 $a_{ij} \neq a_{xy}$이다. 즉, 모든 사람의 번호는 서로 다르다.

$N+2$번째 줄에는 질의의 개수 $Q$가 주어진다. $(1 \leq Q \leq 200\,000)$

$N + 3$번째 줄부터 $Q$ 개의 줄에 걸쳐 질의가 차례대로 주어진다.

입력으로 주어지는 모든 수는 정수이다.

출력

질의에 대한 답을 각 줄마다 차례로 출력한다.

예제 입력 1

3
1 1
2 2 3
1 4
7
2 1 1
1 1 2
2 1 3
2 3 4
1 1 4
1 3 4
2 1 4

예제 출력 1

1
YES
6
-1
YES
NO
10

2번째까지 쿼리를 실행하면 1 2 3 / 4가 된다.

5번째까지 쿼리를 실행하면 1 2 3 4가 된다.

예제 입력 2

5
1 3
1 5
1 4
1 2
1 1
5
1 3 5
1 4 5
1 1 2
1 1 5
2 2 3

예제 출력 2

YES
YES
YES
YES
9

4번째 쿼리까지 실행하면 1 2 4 3 5 순서대로 한 줄로 된다.

5번째 쿼리는 2와 3 사이의 합인 $2+4+3=9$가 답이다.