Легендарна Майстриня-пекарка Корнелія Крамбл відома своїми вражаючими веселковими шаровими тортами. Ці величні творіння стали хітом міста на початку 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