Інтервальний добуток
Цілком нормально відчувати хвилювання і напруження за день до змагання з програмування. Щоб розслабитися, ви вирішили піти з друзями до найближчого пабу. Щоб зберегти ясність розуму на наступний день, ви вирішили зіграти в наступну гру. Спочатку ваші друзі дадуть вам послідовність з 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' (нуль).