N. Очередная задача на массиве
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Помимо теории чисел и строковых алгоритмов Профессор Ш. любит заниматься массивами, но не простыми, а отсортированными по неубыванию элементов. Сегодня Профессор Ш. придумал отличную задачу и делится её формулировкой с вами.

Изначально имеется массив $$$a$$$, состоящий из $$$N$$$ чисел, элементы которого расположены в порядке неубывания. К данному массиву можно применять запросы $$$2$$$ типов:

  1. Сдвинуть массив циклически влево или вправо на $$$k$$$ позиций.
  2. Проверить, есть ли в массиве число $$$x$$$. Если такое число есть, вывести его номер в массиве (возможно, измененном). Если число входит в массив несколько раз, следует вывести номер его первого вхождения в массив.

Так как Профессор Ш. умеет работать только с отсортированными массивами, он не всегда умеет проверять, есть ли в массиве число $$$x$$$. Помогите Профессору – напишите программу, которая будет верно отвечать на запросы обоих типов.

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

В первой строке содержится число $$$N$$$ $$$(1 \le N \le 2 \cdot 10^5)$$$ – количество элементов массива.

Во второй строке содержатся $$$N$$$ чисел $$$a_i$$$ $$$(-10^{18} \le a_i \le 10^{18})$$$ – элементы массива $$$a$$$. Гарантируется, что изначально элементы массива отсортированы по неубыванию.

В третьей строке содержится число $$$Q$$$ $$$(1 \le Q \le 3 \cdot 10^5)$$$ – количество запросов.

В следующих $$$Q$$$ строках содержатся запросы. Запросы задаются следующим образом:

  1. $$$s~k$$$ $$$(1 \le |k| \lt N)$$$ – сдвинуть массив циклически на $$$k$$$ позиций. Если число $$$k$$$ отрицательное, то сдвиг осуществляется влево, в противном случае сдвиг должен быть осуществлён вправо.
  2. $$$?~x$$$ – проверить, есть ли в массиве число $$$x$$$.
Выходные данные

Для каждого запроса вида «$$$?~x$$$» выведите в отдельной строке число – номер числа $$$x$$$ в массиве. Если числа $$$x$$$ в масиве нет, в отдельной строке выведите «$$$-1$$$». Считается, что элементы массива нумеруются с $$$1$$$.

Примеры
Входные данные
7
1 2 3 4 5 6 7
7
? 9
s 2
? 4
s -2
? 3
s -5
? 6
Выходные данные
-1
6
3
1
Входные данные
7
1 1 2 2 3 3 4
7
? 9
s 2
? 4
s -1
? 2
s -5
? 1
Выходные данные
-1
2
4
4
Примечание

Рассмотрим первый пример.

Изначально массив $$$a = [1, 2, 3, 4, 5, 6, 7]$$$.

  1. Так как число $$$9$$$ больше любого элемента массива $$$a$$$, выведем $$$-1$$$.
  2. После запроса $$$s~2$$$ нужно сдвинуть массив вправо на $$$2$$$ позиции, он станет равен $$$[6, 7, 1, 2, 3, 4, 5]$$$.
  3. Число $$$4$$$ находится на позиции $$$6$$$, поэтому выводим $$$6$$$.
  4. После запроса $$$s~-2$$$ массив примет исходный вид $$$[1, 2, 3, 4, 5, 6, 7]$$$
  5. Число $$$3$$$ находится на позиции $$$3$$$, поэтому выводим $$$3$$$
  6. После запроса $$$s~-5$$$ массив сдвигается на $$$5$$$ позиций влево: $$$[6, 7, 1, 2, 3, 4, 5]$$$
  7. Число $$$6$$$ находится на позиции $$$1$$$, поэтому выводим $$$1$$$.