A. Будильник
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Поликарп провел целый день за подготовкой задач для вас. Теперь ему нужно поспать хотя бы $$$a$$$ минут, чтобы отдохнуть.

Поликарп может проснуться только от звука будильника. Он только заснул, а его первый будильник прозвонит ровно через $$$b$$$ минут.

Каждый раз когда Поликарп просыпается, он решает, заводить ли будильник еще раз или нет. Если он проспал меньше $$$a$$$ минут суммарно, то он заводит будильник так, чтобы тот прозвонил ровно через $$$c$$$ минут, и тратит $$$d$$$ минут, чтобы снова заснуть. Иначе же он встает с кровати, начиная новый день.

Если будильник звонит, пока Поликарп все еще засыпает, то он снова его заводит на $$$c$$$ минут и опять тратит $$$d$$$ минут, чтобы заснуть.

Вам же всего лишь предстоит выяснить, когда Поликарп встанет с кровати или сообщить, что это не случится никогда.

Пожалуйста, прочитайте пояснение, чтобы получше понять пример.

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

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

В единственной строке каждого набора входных данных записаны четыре целых числа $$$a, b, c, d$$$ ($$$1 \le a, b, c, d \le 10^9$$$) — время, которое необходимо Поликарпу, чтобы выспаться, время до первого звонка будильника, время до каждого последующего звонка будильника и время, необходимое Поликарпу, чтобы заснуть.

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

На каждый набор входных данных выведите одно целое число. Если Поликарп никогда не встанет с кровати, то выведите -1. Иначе выведите время, которое Поликарп потратит до того, как встать с кровати.

Пример
Входные данные
7
10 3 6 4
11 3 6 4
5 9 4 10
6 5 2 3
1 1 1 1
3947465 47342 338129 123123
234123843 13 361451236 361451000
Выходные данные
27
27
9
-1
1
6471793
358578060125049
Примечание

В первом наборе входных данных Поликарп просыпается через $$$3$$$ минуты. Он отдохнул только $$$3$$$ минуты из необходимых $$$10$$$. Поэтому он снова заводит будильник, чтобы тот прозвенел через $$$6$$$ минут, и тратит $$$4$$$ минуты, чтобы уснуть. То есть он отдыхает в течение еще $$$2$$$ минут, что суммируется в $$$3+2=5$$$ минут сна. Он повторяет эту процедуру еще три раза, и получается $$$11$$$ минут сна. Наконец, он встает с кровати. Он потратил $$$3$$$ минуты до первого будильника, в потом заново завел будильник четыре раза. Ответ равен $$$3+4 \cdot 6 = 27$$$.

Второй набор входных данных похож на первый, но Поликарпу надо $$$11$$$ минут, чтобы выспаться, вместо $$$10$$$. Однако, это ничего не меняет, потому что Поликарп получает $$$11$$$ минут сна при таких настройках будильника так и так.

В третьем наборе входных данных Поликарп просыпается достаточно отдохнувшим уже после первого будильника. Поэтому ответ равен $$$b=9$$$.

В четвертом наборе входных данных Поликарп просыпается через $$$5$$$ минут. К сожалению, дальше он не может отдохнуть ни минуты, заводя будильник все снова и снова бесконечно :(