Реалізуйте структуру даних для керування множиною цілих чисел, що підтримує такі операції:
: Додає ціле число до множини . Якщо вже є у множині, нічого не змінюється.
\text{sum}(l, r): Обчислює та повертає суму всіх елементів з , що задовольняють нерівності l \leq x \leq r.
Спочатку множина порожня. У першому рядку знаходиться ціле число (1 \leq n \leq 300\ 000) — кількість операцій. Наступні рядків містять одну з операцій у такому форматі:
"+ i"
"? l r"
Операція "? l r" відповідає запиту \text{sum}(l, r).
Якщо операція "+ i" є першою або слідує після іншої операції "+", то вона відповідає . Проте якщо вона слідує після запиту "?", і результат цього запиту був , тоді операція стає \text{add}((i + y) \bmod 10^9).
Усі параметри у запитах і операціях додавання знаходяться у межах від до 10^9 включно.
Для кожної операції-запиту виведіть одне число — відповідь на запит.
Приклад 1