И снова сумма...#2310

И снова сумма...

3 секунды
128 мегабайт
Very easy

Реализуйте структуру данных для управления множеством целых чисел, поддерживающую следующие операции:

Input

Изначально множество пусто. Первая строка содержит целое число (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 включительно.

Output

Для каждой операции-запроса выведите одно число — результат запроса.

Examples

Example 1

Loading
Loading