Произведение на отрезке#4082

Произведение на отрезке

2 секунды
122,174 мегабайта
Very easy

Обычно нормально испытывать волнение и напряжение накануне соревнований по программированию. Чтобы расслабиться, вы встретились с друзьями и решили сыграть в игру, чтобы ум был «острым» на следующий день. Вначале друзья дадут вам последовательность из целых чисел x_1, x_2, \ldots, x_n. Затем будет раундов; в каждом раунде друзья предложат одну из двух команд:

- команду изменения (change), когда друзья хотят изменить одно из значений в последовательности; или - команду произведения (product), когда друзья дадут вам два значения , и попросят определить, будет ли произведение x_i \times x_{i+1} \times \ldots \times x_{j-1} \times x_j положительным, отрицательным или нулём.

Вы хотите ответить на все вопросы правильно, поэтому решаете опереться на свои навыки программирования. К счастью, друзья позволяют вам воспользоваться ноутбуком и написать программу для помощи в игре.

Input

Каждый тестовый случай описывается несколькими строками. Первая строка содержит два целых числа и (1 \leq n, k \leq 10^5) — соответственно количество элементов в последовательности и количество раундов игры.

Вторая строка содержит целых чисел x_i — начальные значения последовательности (-100 \leq x_i \leq 100 для i = 1, 2, \ldots, n).

Каждая из следующих строк описывает команду и начинается с заглавной буквы C или P.

Если это буква C, строка описывает команду изменения, за которой следуют два целых числа и , означающие, что x_i нужно присвоить значение (1 \leq i \leq n, -100 \leq v \leq 100).

Если это буква P, строка описывает команду произведения, за которой следуют два целых числа и , означающие, что нужно вычислить произведение от x_i до x_j включительно (1 \leq i \leq j \leq n).

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

Output

Для каждого тестового случая выведите строку, представляющую результат всех команд произведения в этом тестовом случае. -й символ строки должен быть результатом -й команды произведения. Если результат команды — положительный, символ должен быть **+** (плюс); если результат отрицательный — **-** (минус); если результат равен нулю — **0** (ноль).

Examples

Example 1

Loading
Loading