레이저

NYPC 2023 · 본선

이차원 평면에 xx축과 평행한 선분, 즉, 수평선분이 NN 개 놓여있다. ii 번째 선분의 양 끝점은 (Li,Hi)(L_i, H_i)(Ri,Hi)(R_i, H_i)이다.

또한, 레이저 발사기 MM 개가 있다. 편의상 레이저 발사기에 11번부터 MM번까지 번호가 매겨져 있다. jj번 레이저 발사기는 (Xj,Yj)(X_j, Y_j)에 놓여 있다. jj번 레이저 발사기에서 발사된 레이저는 yy축에 평행하게 yy좌표가 증가하는 수직 방향으로 뻗어나가며, PjP_j 개의 선분을 뚫고 지나갈 수 있다. jj번 레이저 발사기에서 발사된 레이저가 선분을 PjP_j 번 뚫고 지나간 이후 선분을 만나면 더 이상 뻗어나가지 않고 그 자리에서 소멸한다. 레이저가 뚫고 지나간 선분은 그 즉시 파괴되어 없어진다.

레이저 발사기가 번호 순서대로 레이저를 발사할 때, 각 레이저가 뻗어나간 거리를 구하는 프로그램을 작성하라. 어떤 레이저는 무한히 뻗어나갈 수 있음에 유의하라.

입력 형식

첫 줄에 수평선분의 개수를 나타내는 정수 NN과 레이저 발사기의 개수를 나타내는 정수 MM이 공백으로 구분되어 주어진다. (1N,M500001 \le N, M \le 50\,000)

이어지는 NN 개의 줄의 ii 번째 줄에는 ii 번째 선분의 정보를 나타내는 세 정수 LiL_i, RiR_i, HiH_i가 공백으로 구분되어 주어진다. (1000000000Li<Ri1000000000-1\,000\,000\,000 \le L_i < R_i \le 1\,000\,000\,000; 1000000000Hi1000000000-1\,000\,000\,000 \le H_{i} \le 1\,000\,000\,000)

이어지는 MM 개의 줄의 jj 번째 줄에는 jj번 레이저 발사기의 정보를 나타내는 세 정수 XjX_j, YjY_j, PjP_j가 공백으로 구분되어 주어진다. (1000000000Xi,Yi1000000000-1\,000\,000\,000 \le X_i, Y_i \le 1\,000\,000\,000; 0PiN0 \le P_{i} \le N)

주어지는 모든 xx 좌표는 서로 다르고, 주어지는 모든 yy좌표도 서로 다르다.

출력 형식

MM 개의 줄에 걸쳐 답을 출력한다. jj 번째 줄에 jj번 레이저 발사기에서 발사된 레이저가 뻗어나간 거리를 출력한다. 만약, 레이저가 무한히 뻗어나가면 -1을 출력한다.

예제

입력

5 3 4 11 7 8 12 8 6 13 3 1 7 4 2 10 9 5 2 2 9 5 2 3 6 1

출력

7 -1 -1

예제 설명

11번 레이저 발사기에서 레이저가 발사된 이후의 순간이다. 이 레이저는 선분 22 개를 뚫고 지나갈 수 있다.

처음 발사된 레이저에 의해 선분 22 개가 파괴되어 없어지고, 22번 레이저 발사기에서 레이저가 발사된 이후의 순간이다. 이 레이저는 선분 22 개를 뚫고 지나갈 수 있으며, 이후 무한히 뻗어나간다.

33번 레이저 발사기에서 레이저가 발사된 이후의 순간이다. 이 레이저는 선분 11 개를 뚫고 지나갈 수 있으며, 이후 무한히 뻗어나간다.

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 21

N,M3000N, M \le 3\,000

종류 2: 22

임의의 실수 tt에 대해, 직선 x=tx = t와 만나는 선분은 1010개보다 많지 않다.

종류 3: 23

Pj=0P_j = 0

종류 4: 23

Hi>0H_i > 0; Yj<0Y_j < 0

종류 5: 11

추가적인 제한 조건이 없음.

해설