마리오

일정한 구간을 왕복하는 배들 사이에서 위치가 겹치는 순간에만 갈아타며 반대편 강둑에 가장 빨리 도착하는 시각을 구합니다.

보통7최단 경로그래프수학아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

슈퍼 마리오의 어려운 스테이지를 깨려고 AI를 만들어 대신 플레이시키기로 했다. 첫 단계로 적은 빼고 이동만 구현한다. 이 문제에서 구현할 이동은 강 건너기다.

강의 폭은 WW이고, 강은 x=[0,W]x = [0, W] 구간을 차지한다. 강을 건너는 수단은 배다. 배 ii는 구간 [Li,Ri][L_i, R_i] 안에서만 오가고, 모든 배는 높이 y=0y = 0에 있다. 배는 크기가 없는 점으로 본다.

t=0t = 0에 마리오는 x=0x = 0에 있고, 모든 배는 각자의 왼쪽 끝점에 있다. 배는 초당 11의 속력으로 두 끝점 사이를 계속 왕복한다. 즉 구간이 [L,R][L, R]인 배는 t=0t = 0x=Lx = L, t=RLt = R - Lx=Rx = R, t=2(RL)t = 2(R - L)에 다시 x=Lx = L, t=3(RL)t = 3(R - L)에 다시 x=Rx = R에 있다.

마리오는 아직 점프를 못 한다. 그래서 두 배의 xx좌표가 같아지는 순간에만 한 배에서 다른 배로 옮겨탈 수 있다. 시간은 연속이므로 그 순간이 정수 시각이 아니어도 옮겨탈 수 있고, 옮겨타는 데 걸리는 시간은 없다. 같은 xx좌표에 배가 여러 척 있으면 그중 어느 배로든 옮겨탈 수 있다.

마리오는 x=0x = 0에 있는 배에 올라타서 출발하고, 타고 있는 배가 x=Wx = W에 닿는 순간 강을 건넌 것으로 본다. x=0x = 0에서 x=Wx = W까지 가는 데 걸리는 최소 시간을 구하거나, x=Wx = W에 도달할 수 없음을 판정하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. (1T201 \le T \le 20)

각 테스트 케이스는 다음과 같이 주어진다.

  • 첫 줄에 배의 수 NN과 강의 폭 WW가 공백으로 구분되어 주어진다. (0N1000 \le N \le 100, 1W5001 \le W \le 500)
  • 다음 NN개 줄에 배 ii가 오가는 구간 [Li,Ri][L_i, R_i]를 나타내는 두 정수 LiL_iRiR_i가 공백으로 구분되어 주어진다. (0Li<RiW0 \le L_i < R_i \le W)

출력

각 테스트 케이스마다 x=Wx = W에 도달하는 가장 이른 시각을 한 줄에 정수로 출력한다. 도달할 수 있다면 그 시각은 항상 정수다. 도달할 수 없으면 IMPOSSIBLE을 출력한다.

노트

첫 번째 예제 입력의 첫 테스트 케이스에서 두 배는 주기가 같아 항상 11만큼 떨어진 채 움직인다. 그래서 한 배에서 다른 배로 옮겨탈 수 없다.

같은 예제 입력의 두 번째 테스트 케이스에서는 시각 22에 세 번째 배로, 시각 1616에 두 번째 배로 옮겨타면 시각 2424x=10x = 10에 닿는다.