В университете Нархоз факультеты — это не просто кафедры, это часть живой, развивающейся структуры.
Существует $$$n$$$ факультетов, расположенных в круглом здании. Это значит, что факультет $$$0$$$ является соседом факультета $$$n - 1$$$. У каждого факультета есть тип — возможно, это экономика, бизнес или даже магическая бухгалтерия — и каждый тип представлен целым числом.
Университет оснащён высокотехнологичными порталами, позволяющими мгновенно перемещаться между любыми двумя факультетами одного и того же типа.
Но иногда этого недостаточно. Поэтому разрешается строить коридоры между соседними факультетами, то есть между факультетом $$$i$$$ и $$$(i + 1) \bmod n$$$. После строительства по ним можно свободно передвигаться в обоих направлениях.
Кроме того, факультеты любят менять свой имидж. В любой момент факультет может изменить свой тип (вдруг они решили перейти на крипто-финансы).
Вы получите $$$q$$$ запросов, каждый из которых может быть одного из следующих видов:
Ваша задача — для каждого запроса типа 3 вывести YES, если перемещение возможно, и NO в противном случае.
Первая строка содержит два целых числа $$$n$$$ и $$$q$$$ — количество факультетов и количество запросов соответственно ($$$1 \le n, q \le 10^5$$$).
Вторая строка содержит $$$n$$$ целых чисел: $$$t_0, t_1, \dots, t_{n-1}$$$ — начальные типы факультетов ($$$0 \le t_i \lt 10^{18}$$$).
Каждая из следующих $$$q$$$ строк описывает один запрос в одном из следующих форматов:
Гарантируется, что все запросы типа $$$2$$$ — уникальны (между каждой парой соседей можно построить коридор не более одного раза).
Для каждого запроса типа $$$3$$$ выведите YES, если из факультета $$$a$$$ можно добраться до факультета $$$b$$$, иначе выведите NO.
3 3 0 0 2 2 2 3 0 2 1 0 0
YES
10 9 2 1 0 1 2 1 2 0 2 2 2 6 1 5 3 2 5 1 5 4 3 0 6 1 9 3 2 2 2 7 3 9 3
YES NO