E. Джейми и дерево
ограничение по времени на тест
2.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Трудно поверить, но Джейми — финальный босс!

У Джейми есть дерево на n вершинах, пронумерованных от 1 до n. Изначально корнем дерева является вершина с номеров 1. Кроме того, на каждой вершине дерева записано число.

Вам необходимо обрабатывать запросы трёх типов:

1 v — Сделать вершину с номером v корнем дерева.

2 u v x — Прибавить x к значению каждой вершины наименьшего по размеру поддерева, содержащего вершины u и v.

3 v — Найти сумму значений вершин в поддереве вершины v.

Поддерево вершины v — это множество вершин, для которых v лежит на кратчайшем пути от этой вершины до корня. Обратите внимание, что поддерево вершины может измениться в результате изменения корня дерева.

Покажите Джейми вашу мощь и выполните все запросы!

Входные данные

В первой строке через пробел заданы два целых числа n и q (1 ≤ n ≤ 105, 1 ≤ q ≤ 105) — количество вершин и количество запросов, которые требуется обработать, соответственно.

Во второй строке через пробел заданы n целых чисел a1, a2, ..., an ( - 108 ≤ ai ≤ 108) — начальные значения вершин.

В следующих n - 1 строках содержатся пары целых чисел ui, vi (1 ≤ ui, vi ≤ n) обозначающие ребро между вершинами ui и vi в дереве.

Следующие q строк содержат описания запросов.

Каждый запрос задан в одном из следующих форматов в зависимости от типа запроса.

1 v (1 ≤ v ≤ n) для запросов первого типа.

2 u v x (1 ≤ u, v ≤ n,  - 108 ≤ x ≤ 108) для запросов второго типа.

3 v (1 ≤ v ≤ n) для запросов третьего типа.

Все числа в описании запросов целые.

Запросы необходимо обрабатывать в заданном порядке. Гарантируется, что заданный граф является деревом.

Выходные данные

Для каждого запроса третьего типа выведите ответ на него. Гарантируется, что в тесте есть хотя бы один запрос третьего типа.

Примеры
Входные данные
6 7
1 4 2 8 5 7
1 2
3 1
4 3
4 5
3 6
3 1
2 4 6 3
3 4
1 6
2 2 4 -5
1 4
3 3
Выходные данные
27
19
5
Входные данные
4 6
4 3 5 6
1 2
2 3
3 4
3 1
1 3
2 2 4 3
1 1
2 2 4 -3
3 1
Выходные данные
18
21
Примечание

Картинка ниже иллюстрирует изменения дерева в первом тестовом примере.