Вау! Вы отлично помогли команде Р поймать всех покемонов, посланных Башем. Мяут, член частью команды Р, уже выучил человеческий язык, и теперь хочет обучиться программированию. Он согласился освободить покемонов, если Баш ответит на его вопросы.
В начале Мяут дает Башу взвешенное дерево из n вершин и последовательность a1, a2..., an, которая является перестановкой чисел 1, 2, ..., n. Теперь Мяут задает q запросов в одной из следующих форм:
- 1 l r v значит, что Баш должен посчитать
, где dist(a, b) — длина кратчайшего пути от вершины a до вершины b в данном дереве. - 2 x значит, что Баш должен поменять местами ax и ax + 1 в заданной последовательности. Новая последовательность будет использоваться для следующих запросов.
Помогите Башу ответит на запросы!
Выходные данные
Для каждого запроса типа 1 выведите единственное число в отдельной строке — ответ на запрос.
Примечание
В примере запросы следующие:
- 1 1 5 4
- 1 1 3 3
- 2 3
- 2 2
- 1 1 3 3
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 5 4 5 1 3 2 4 2 4 1 3 9 4 1 4 4 5 2 1 1 5 4 1 22 20 20 2 38 2 39 1 36 38 38
|
23
37
28
|