eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

День народження

День народження

Крілик Стью подарував крілику Стену на день народження чарівний масив. Цей масив уміє робити дві речі: заміняти будь-яке число і відповідати на запит вигляду "_скільки на відрізку від a до b різних чисел_".

Стен захоплений подарунком, але його хвилює, чи не задумав Стью якогось підступу, бо раніше той частенько розігрував друга. На перший погляд все було гаразд: Стен виконав декілька простих операцій, і масив видав цілком правильні відповіді.

Щоб розвіяти всілякі сумніви, Стен просить вашої допомоги: він збирається досконало випробувати подарований масив, виконавши з ним низку операцій. Ви маєте приготувати правильні відповіді, щоб Стен міг точно визначити, чи масив справді чарівний.

Вхідні дані

У першому рядку міститься два цілих числа n і m (1n, m50000). Другий рядок містить n чисел – початковий вміст масиву. Наступні m рядків містять опис операцій:

  • операція зміни в масиві має вигляд c x z, де x – ціле число, позиція в масиві в якій потрібно замінити поточне значення на число z (0x < n);
  • операція запиту має вигляд q x y, де x, y (0xy < n) - цілі числа, відповідно початок і кінець відрізка, на якому потрібно порахувати кількість різних чисел.

Усі числа в масиві невід’ємні цілі не більші за 109.

Вихідні дані

Для кожного запиту вигляду "**q x y**" виведіть в окремому рядку результат, який повинен обчислити чарівний масив Стена.

Ліміт часу 4 секунди
Ліміт використання пам'яті 122.17 MiB
Вхідні дані #1
9 9
0 0 1 0 1 0 0 0 0
q 1 4
q 0 0
c 2 2
q 5 6
q 1 2
c 8 2
c 1 3
q 0 3
q 5 8
Вихідні дані #1
2
1
1
2
3
2
Джерело ACM-ICPC Ukraine 2012, 1st Stage Ukraine, April 21, 2012