Произведение интервала
Нормально испытывать беспокойство и напряжение накануне конкурса по программированию. Чтобы расслабиться, вы решили сходить с друзьями в ближайший паб. Чтобы сохранить ясность ума на следующий день, вы предложили сыграть в следующую игру. Сначала ваши друзья дадут вам последовательность из N целых чисел X_1, X_2, ..., X_N. Затем будет K раундов; в каждом раунде ваши друзья будут давать команду, которая может быть:
командой изменения, когда ваши друзья хотят изменить одно из значений в последовательности; или
командой произведения, когда ваши друзья дают вам два значения I, J и спрашивают, является ли произведение X_I X_{I+1} ... X_{J-1}×X_J положительным, отрицательным или нулевым.
Поскольку вы находитесь в пабе, было решено, что за неправильный ответ придется выпить пинту пива. Вы беспокоитесь, что это может негативно сказаться на завтрашнем конкурсе, и не хотите проверять, верна ли теория пика Балмера. К счастью, ваши друзья разрешили вам использовать ноутбук. Поскольку вы больше доверяете своим навыкам программирования, чем математике, вы решили написать программу, чтобы помочь вам в игре.
Входные данные
Каждый тестовый случай описывается несколькими строками. Первая строка содержит два целых числа N и K, указывающих соответственно количество элементов в последовательности и количество раундов игры (1 ≤ N, K ≤ 10^5). Вторая строка содержит N целых чисел X_i, которые представляют начальные значения последовательности (-100 ≤ X_i ≤ 100 для i = 1, 2, ..., N). Каждая из следующих K строк описывает команду и начинается с заглавной буквы, которая является либо 'C', либо 'P'. Если буква 'C', строка описывает команду изменения, и буква сопровождается двумя целыми числами I и V, указывающими, что X_I должно получить значение V (1 ≤ I ≤ N и -100 ≤ V ≤ 100). Если буква 'P', строка описывает команду произведения, и буква сопровождается двумя целыми числами I и J, указывающими, что произведение от X_I до X_J, включительно, должно быть вычислено (1 ≤ I ≤ J ≤ N). В каждом тестовом случае есть как минимум одна команда произведения.
Выходные данные
Для каждого тестового случая выведите строку, представляющую результат всех команд произведения в тестовом случае. i-й символ строки представляет результат i-й команды произведения. Если результат команды положительный, символ должен быть '+' (плюс); если результат отрицательный, символ должен быть '-' (минус); если результат равен нулю, символ должен быть '0' (ноль).