EduBrick

D. Следующий

2000 мс · 256 МБ · всё или ничего

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

Запросы приходят онлайн: если добавление идёт сразу после запроса с ответом yy, то добавляется (i+y) mod 109(i + y) \bmod 10^9. Ответ −1-1 в качестве yy не участвует — после него добавляется само ii.

Встроенными структурами пользоваться нельзя.

Формат ввода

В первой строке — число операций nn (1≤n≤3⋅1051 \le n \le 3 \cdot 10^5). В следующих nn строках — операции вида + i или ? i. Параметры целые, от 00 до 10910^9.

Формат вывода

На каждый запрос ? выведите ответ в отдельной строке.

Примеры

ввод
6
+ 1
+ 3
+ 3
? 2
+ 1
? 4
вывод
3
4
ввод
2
? 5
+ 5
вывод
-1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.