Поликарпа недавно приняли на работу в одну престижную компанию. На собеседовании ему дали интересное задание:
Даны $$$N$$$ лампочек, выстроенных в ряд. Изначально все они выключены. Далее происходит инверсия каждой первой, потом каждой второй, потом каждой третьей лампочки и так далее до каждой $$$N$$$-й. Требуется узнать сколько лампочек будет гореть после проделанных инверсий. Под инверсией понимается изменение состояния с «включено» на «выключено» и наоборот. Поликарп не задумываясь выдал ответ, и его приняли на место главного разработчика модуля, отвечающего за конфигурацию более серьёзных объектов — фонарей.
Скоро день города, поэтому фонари на главном авеню должны гореть не как обычно. Модуль, над которым работает Поликарп, должен принимать запросы вида $$$i$$$, $$$j$$$, $$$k$$$, запрос такого вида обозначает, что нужно применить инверсию к каждому $$$k$$$-му фонарю на отрезке $$$[i,j]$$$. Более точно, произойдёт инверсия $$$i$$$-го, $$$i+k$$$-го, $$$i+2k$$$-го фонаря и так далее. Так как ответственный за подачу команд должен владеть информацией обо всех фонарях, модуль так же должен уметь выводить текущую конфигурацию всех фонарей.
Поликарп считает, что код его модуля идеален, но руководство считает, что он слишком медленно работает, и угрожает Поликарпу должностью полировщика нитей накала. Помогите Поликарпу улучшить его модуль, он в долгу не останется!
В первой строке ввода содержится натуральное число $$$N$$$ — количество фонарей ($$$1\leq N \leq 10^{5}$$$).
Во второй строке содержится изначальная конфигурация фонарей в виде строки длиной $$$N$$$ из символов «0» и «1», где «1» обозначает, что фонарь включён и «0», что выключен.
В третьей строке содержится целое число $$$M$$$ — количество запросов ($$$0 \leq M \leq 10^{5}$$$). Далее в $$$M$$$ строках идут запросы. Запрос на вывод обозначается словом out, запрос на изменение состоит из трёх целых чисел $$$i$$$, $$$j$$$, $$$k$$$ ($$$1 \leq i \leq j \leq N$$$, $$$1 \leq k \leq N$$$).
На каждый запрос на вывод текущей конфигурации, выведите строку из символов «0» и «1», аналогично формату во входных данных.
Гарантируется, что потребуется вывести не более $$$2 \times 10^{5}$$$ символов.
3
101
2
1 3 1
out
010
5
00000
4
2 4 2
out
1 5 2
out
01010
11111