Сніжна корова Бессі#10294

Сніжна корова Бессі

1 секунда
128 мегабайтів
Дуже складна

На ферму випав сніг, і Бессі, як завжди на початку зими, будує снігову корову! Зазвичай вона намагається зробити свою скульптуру максимально схожою на справжню корову. Але цього року, відчувши натхнення, вона вирішила створити абстрактну скульптуру у формі дерева, що складається з сніжків, з'єднаних n - 1 гілкою. Кожна гілка з'єднує пару сніжків, і між будь-якими двома сніжками існує унікальний шлях.

Бессі додала ніс до одного з сніжків, щоб він представляв голову абстрактної снігової корови. Цей сніжок вона позначила номером . Щоб додати більше візуального інтересу, вона планує художньо пофарбувати деякі сніжки в різні кольори, використовуючи старі молочні відра, наповнені кольоровим барвником, і розбризкуючи його на скульптуру. Кольори позначаються цілими числами від до 10^5, і у Бессі є необмежений запас відер з барвниками всіх можливих кольорів.

Коли Бессі бризкає на сніжок відром з фарбою, всі сніжки в його піддереві також заливаються цією ж фарбою (сніжок знаходиться в піддереві сніжка , якщо лежить на шляху від до головного сніжка). Розбризкуючи кожен колір з великою обережністю, Бессі стежить за тим, щоб усі кольори, якими був розбризканий сніжок, залишалися видимими. Наприклад, якщо сніжок мав кольори [, , ], а Бессі залила його кольором , то сніжок матиме кольори [, , , ].

Після того, як Бессі кілька разів оббризкає сніжки, вона може захотіти дізнатися, наскільки барвиста частина її снігової корови. "Барвистість" сніжка дорівнює кількості таких різних кольорів , якими він пофарбований. Якщо Бессі запитає вас про сніжок , ви повинні відповісти, вказавши суму значень барвистості всіх сніжків у піддереві .

Допоможіть Бессі визначити барвистість її снігової корови в певні моменти часу.

Вхідні дані

Перший рядок містить число (1 \leq n \leq 10^5) і кількість запитів (1 \leq q \leq 10^5). Кожен з наступних n - 1 рядків містить по два цілих числа і , що описують гілку, яка з'єднує сніжки і (1 \leq a, b \leq n).

Нарешті, кожен з наступних рядків містить запит. Запит виду

1 x c

вказує, що Бессі пролила відро соку кольору на сніжок , розфарбувавши всі сніжки в піддереві . Рядок виду

2 x

означає запит суми значень барвистості всіх сніжків у піддереві . Звісно, 1 \leq x \leq n і 1 \leq c \leq 10^5.

Вихідні дані

Для кожного запиту типу виведіть суму значень барвистості у відповідному піддереві. Зверніть увагу, що ви повинні використовувати 64-бітні цілі числа для уникнення переповнення.

Приклади

Після першого запиту типу сніжок фарбується в колір .

Після другого запиту типу сніжки і фарбуються в колір .

Після третього запиту типу всі сніжки фарбуються в колір .

Приклад 1

Loading
Loading