Задачі
Следующий
Следующий
Реалізуйте структуру даних, яка підтримуєт множину \textbf{S} цілих чисел, з якою дозволено виконувати наступні операції:
\begin{itemize}
\item \textbf{add(i)} -- додати у множину \textbf{S} число \textbf{i} (якщо воно там вже є, то множина не змінюється);
\item \textbf{next(i)} -- вивести мінімальний елемент множини, не менший \textbf{i}. Якщо шуканий елемент у структурі відсутній, необхідно вивести \textbf{--1}.
\end{itemize}
\InputFile
Вхідна множина \textbf{S} порожня. Перший рядок вхідного файлу містить \textbf{n} -- кількість операцій (\textbf{1} ≤ \textbf{n} ≤ \textbf{300 000}). Наступні \textbf{n} рядків містять операції. Кожна операція має вид або "\textbf{+ i}", або "\textbf{? i}". Операція "\textbf{? i}" задає запит \textbf{next(i)}.
Якщо операція "\textbf{+ i}" йде у вхідному файлі на початку або після іншої операції "\textbf{+}", то вона задає операцію \textbf{add(i)}. Якщо ж вона йде після запиту "\textbf{?}" і результатом цього запиту був \textbf{y}, то виконується операція \textbf{add((i+y) mod 10^9)}.
У всіх запитах і операціях додавання параметри лежать в інтервалі від \textbf{0} до \textbf{10^9}.
\OutputFile
Для кожного запиту виведіть одне число -- відповідь на запит.
Вхідні дані #1
6 + 1 + 3 + 3 ? 2 + 1 ? 4
Вихідні дані #1
3 4