Веселкові шарові торти#6639

Веселкові шарові торти

1 секунда
256 мегабайтів
Складна

Легендарна Майстриня-пекарка Корнелія Крамбл відома своїми вражаючими веселковими шаровими тортами. Ці величні творіння стали хітом міста на початку 1900-х років, радуючи дворян та заможних покровителів по всій землі.

Один заможний покровитель замовив у Майстрині-пекарки Корнелії створити чудових тортів. Кожен торт міг мати до шарів, причому кожен шар був покритий помадкою одного яскравого кольору. На жаль, її колекцію таємних рецептів було викрадено з пекарні, що спричинило залучення найкращих детективів, Шерлока Скоунза та доктора Беттера, щоб повернути їх.

Щоб відшукати рецепти, детективам потрібно знати, як виглядав кожен торт, оскільки вони могли з'явитися в конкуруючих пекарнях. Щоб прискорити розслідування, Корнелія описала, чим кожен торт відрізнявся від попереднього, ідентифікованого номером, наданим Шерлоком Скоунзом.

Ваше завдання — розробити ефективну систему для зберігання інформації про торти та перевірити її точність, відповідаючи на запити у формі: "Скільки різних кольорів помадки присутні на торті між шарами та включно?"

Вхідні дані

Перший рядок містить два цілі числа (1 \le m \le 100\,000) та (1 \le n \le 50\,000), де — кількість шарів помадки, а — кількість виготовлених шарових тортів.

Наступні (1 \le k \le 200\,000) рядків описують груп. Кожна група починається з двох чисел (1 \le i \le n) та — де — номер групи, а — кількість запитів, що описують, чим поточний торт відрізняється від торта , у наступному форматі:

— у поточному торті призначити колір (1 \le c \le 32) інтервалу [l, r].

Кожна група завершується запитом у форматі:

— у поточному торті визначити кількість різних кольорів на інтервалі [l, r].

Щоб обчислити , використовуйте формулу x = (i + v) \bmod i, де — результат попереднього запиту другого типу, а — номер поточної групи. Спочатку v = 0. Гарантується, що 1 \le l, r \le m. Торт з номером — це торт без жодного шару помадки. Деякі торти можуть не містити окремих шарів.

Вихідні дані

Для кожного запиту другого типу виведіть результат в окремому рядку.

Приклади

Приклад 1

Loading
Loading