G. Повар и каша
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Наконец-то, обед!

$$$n$$$ школьников выстроились в длинную очередь к палатке повара за кашей. Повар будет выдавать кашу в течение $$$D$$$ минут. Школьник, который стоит на $$$i$$$-м месте в очереди, имеет приоритет $$$k_i$$$ и съедает одну порцию каши за $$$s_i$$$ минут.

В начале каждой минуты перерыва повар накладывает первому в очереди школьнику одну порцию каши, после этого школьник уходит есть свою порцию. Если $$$i$$$-му школьнику выдали порцию в начале $$$x$$$-й минуты, то он вернётся в очередь в конце $$$(x + s_i)$$$-й минуты.

Когда $$$i$$$-й школьник возвращается в очередь, школьники в конце очереди, приоритет которых строго меньше, чем у $$$i$$$-го школьника, должны пропустить его. Таким образом, он встанет в очередь за последним из школьников, приоритет которого не меньше, чем его собственный. То есть за последним школьником $$$j$$$, у которого $$$k_j \ge k_i$$$. Если в очереди нет ни одного такого школьника, то $$$i$$$-й школьник встаёт в начало очереди.

Если несколько школьников возвращаются в одно время, то они вернутся в очередь в порядке возрастания их $$$s_i$$$.

Например, если $$$n = 3$$$, $$$D = 3$$$, $$$k = [2, 3, 2]$$$ и $$$s = [2, 1, 3]$$$, то выдача будет происходить следующим образом:

  • В начале $$$1$$$ минуты в очереди стоят школьники $$$[1, 2, 3]$$$, школьнику $$$1$$$ выдают кашу;
  • в начале $$$2$$$ минуты в очереди стоят школьники $$$[2, 3]$$$, школьнику $$$2$$$ выдают кашу;
  • в начале $$$3$$$ минуты в очереди стоят школьники $$$[3]$$$ школьнику $$$3$$$ выдают кашу;
  • в конце $$$3$$$ минуты в очередь возвращается школьник $$$2$$$ и очередь становится $$$[2]$$$;
  • в конце $$$3$$$ минуты в очередь возвращается школьник $$$1$$$ и очередь становится $$$[2, 1]$$$, так как его приоритет ниже.

Определите, через какое минимальное количество минут после начала перерыва каждый школьник получит кашу хотя бы один раз или сообщите, что за $$$D$$$ минут этого не произойдёт.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$D$$$ ($$$1 \le n \le 2 \cdot 10^5$$$, $$$1 \le D \le 3\cdot 10^5$$$) — количество школьников в очереди и время перерыва соответственно.

Следующие $$$n$$$ строк содержат по два целых числа $$$k_i$$$ и $$$s_i$$$ ($$$1 \le k_i, s_i, \le 10^9$$$) — приоритет и время поедания одной порции каши для очередного школьника. Школьники заданы в порядке, в котором они стоят в очереди (от начала к концу).

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2\cdot 10^5$$$. Аналогично гарантируется, что сумма значений $$$D$$$ по всем наборам входных данных не превосходит $$$3\cdot 10^5$$$.

Выходные данные

Для каждого набора входных данных выведите минимальное количество минут, через которое каждый школьник получит кашу хотя бы один раз. Если этого не произойдёт за время перерыва, выведите $$$-1$$$.

Пример
Входные данные
7
3 3
2 2
3 1
2 3
5 10
10 3
7 1
11 3
5 1
6 1
5 20
4 2
7 2
8 5
1 5
3 1
5 17
1 3
8 2
8 3
2 2
1 1
5 14
8 2
4 2
1 3
8 3
6 4
1 11
4 5
5 14
8 2
4 2
1 3
8 3
6 4
Выходные данные
3
-1
12
6
6
1
6