성준이는 새로 출시된 게임인 구름런에 빠져있다. 구름런은 사이드 스크롤 러닝 액션 장르의 게임으로, 일정한 속도로 이동하는 캐릭터를 조작해 안전하게 목적지에 도착하는 방식의 게임이다. 캐릭터는 한 번 출발하면 1초에 1칸씩 오른쪽으로 달려서 전진하게 된다. 별도의 조작을 하지 않으면 캐릭터는 계속 바닥을 밟으며 달려간다. 출발지와 목적지를 포함한 일부 칸들은 항상 착지할 수 있는 발판이다. 그리고 몇 개의 칸은 일정 시간이 지나면 착지가 불가능한 구름이 놓여져 있다. 구름은 일정 시간 동안만 발판으로 이용할 수 있으며, 주어진 시간이 모두 지나면 더 이상 발판으로 사용할 수 없도록 사라지게 된다. 구름이 사라진 빈 칸은 달려서 이동할 수 없게 된다.
그림 1. 첫 번째 테스트케이스를 나타낸다. 구름 내부에 적인 숫자는 앞으로 구름을 발판으로 사용할 수 있는 남은 시간을 의미한다.
구름런에서 캐릭터는 달리기가 아닌 점프를 사용할 수 도 있다. 점프를 사용해도 이동하는 속도는 동일하지만 일부 발판이나 구름을 밟지 않고 건너뛸 수 있게 된다. 물론 구름이 사라져 비어있는 칸도 건너뛸 수 있다. 캐릭터가 한 번의 점프로 밟지 않고 지나칠 수 있는 최대 칸의 수는 L로 정의한다. 한 번의 점프로 최대 L칸을 밟지 않고 무시할 수 있다. L개 보다 적은 개수의 칸을 지나친 후 다시 착지 하는 것도 가능하다.
구름런은 출발을 늦게 할 수록 더 높은 점수를 주는 스릴러 규칙이 존재한다. 하지만 너무 늦게 출발하게 될 경우 게임의 규칙을 만족하며 도착할 수 없기 때문에 무한히 기다릴 수 만은 없다. 성준이는 더 높은 기록을 세우기위해 최대한 늦게 출발한 후 목적지에 도착하는 방법을 찾으려고 한다. 캐릭터의 정보와 각 구름에 대한 정보가 입력으로 주어질 때, 출발하지 않고 대기할 수 있는 최대의 시간을 계산하는 프로그램을 작성하시오. 목적지 기둥은 항상 모든 구름보다 오른쪽(X좌표가 큰 방향)에 위치한다.
그림 2. 출발하지 않고 3초간 시작점에서 대기한 상황의 그림.
첫 번째 테스트케이스의 경우 3초후에 출발해도 목적지에 도착할 수 있게 된다. 아래의 그림들을 참고하자.
그림 3. 3초 대기한 후 출발하여 1초간 이동한 시점의 그림.
그림 3의 시점에서는 총 4초만에 첫 번째 구름(x=1)에 도착했다. 바로 앞에 존재하는 2번, 3번칸의 구름들은 도달할 시점에는 사라지게 될 것이므로 발판으로 사용할 수 없다. 그렇기에 해당 칸에서 점프를 해서 4번 칸으로 이동해야만 한다.
그림 4. 위의 그림에서 점프를 한 후 4번 칸으로 이동한 시점의 그림.
그림 4의 시점에서는 게임시작 후 총 7초가 지났을 시점에 네 번째 칸의 구름에 도착했다. 아직 구름이 사라지지 않았으므로 착지한 후 다음 칸으로 달려갈 수 있다. 이후에 8번칸에 도착한 후 점프로 목적지에 바로 착지할 수 있다.
첫 번째 줄에는 테스트케이스의 수를 나타내는 1이상 20이하의 자연수 T가 주어진다. 이후 총 T개의 테스트케이스에 대한 입력이 차례로 주어진다.
테스트케이스의 첫 줄에는 두 개의 자연수가 공백으로 구분되어 L N
형식으로 주어진다.
이후 N개의 구름에 대한 정보가 한 줄에 하나씩 주어진다. 각 구름에 대한 정보는 두 개의 자연수로 Xi Ti
형식으로 주어진다.
각 테스트 케이스에 대한 정답을 한 줄씩 출력한다.