CF1254D Tree Queries

Description

Hanh is a famous biologist. He loves growing trees and doing experiments on his own garden. One day, he got a tree consisting of $ n $ vertices. Vertices are numbered from $ 1 $ to $ n $ . A tree with $ n $ vertices is an undirected connected graph with $ n-1 $ edges. Initially, Hanh sets the value of every vertex to $ 0 $ . Now, Hanh performs $ q $ operations, each is either of the following types: - Type $ 1 $ : Hanh selects a vertex $ v $ and an integer $ d $ . Then he chooses some vertex $ r $ uniformly at random, lists all vertices $ u $ such that the path from $ r $ to $ u $ passes through $ v $ . Hanh then increases the value of all such vertices $ u $ by $ d $ . - Type $ 2 $ : Hanh selects a vertex $ v $ and calculates the expected value of $ v $ . Since Hanh is good at biology but not math, he needs your help on these operations.

Input Format

The first line contains two integers $ n $ and $ q $ ( $ 1 \leq n, q \leq 150\,000 $ ) — the number of vertices on Hanh's tree and the number of operations he performs. Each of the next $ n - 1 $ lines contains two integers $ u $ and $ v $ ( $ 1 \leq u, v \leq n $ ), denoting that there is an edge connecting two vertices $ u $ and $ v $ . It is guaranteed that these $ n - 1 $ edges form a tree. Each of the last $ q $ lines describes an operation in either formats: - $ 1 $ $ v $ $ d $ ( $ 1 \leq v \leq n, 0 \leq d \leq 10^7 $ ), representing a first-type operation. - $ 2 $ $ v $ ( $ 1 \leq v \leq n $ ), representing a second-type operation. It is guaranteed that there is at least one query of the second type.

Output Format

For each operation of the second type, write the expected value on a single line. Let $ M = 998244353 $ , it can be shown that the expected value can be expressed as an irreducible fraction $ \frac{p}{q} $ , where $ p $ and $ q $ are integers and $ q \not \equiv 0 \pmod{M} $ . Output the integer equal to $ p \cdot q^{-1} \bmod M $ . In other words, output such an integer $ x $ that $ 0 \le x < M $ and $ x \cdot q \equiv p \pmod{M} $ .

Explanation/Hint

The image below shows the tree in the example: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1254D/8305f689c4b5cb634af4d0b9b9cf646ab39a9a7b.png)For the first query, where $ v = 1 $ and $ d = 1 $ : - If $ r = 1 $ , the values of all vertices get increased. - If $ r = 2 $ , the values of vertices $ 1 $ and $ 3 $ get increased. - If $ r = 3 $ , the values of vertices $ 1 $ , $ 2 $ , $ 4 $ and $ 5 $ get increased. - If $ r = 4 $ , the values of vertices $ 1 $ and $ 3 $ get increased. - If $ r = 5 $ , the values of vertices $ 1 $ and $ 3 $ get increased. Hence, the expected values of all vertices after this query are ( $ 1, 0.4, 0.8, 0.4, 0.4 $ ). For the second query, where $ v = 2 $ and $ d = 2 $ : - If $ r = 1 $ , the values of vertices $ 2 $ , $ 4 $ and $ 5 $ get increased. - If $ r = 2 $ , the values of all vertices get increased. - If $ r = 3 $ , the values of vertices $ 2 $ , $ 4 $ and $ 5 $ get increased. - If $ r = 4 $ , the values of vertices $ 1 $ , $ 2 $ , $ 3 $ and $ 5 $ get increased. - If $ r = 5 $ , the values of vertices $ 1 $ , $ 2 $ , $ 3 $ and $ 4 $ get increased. Hence, the expected values of all vertices after this query are ( $ 2.2, 2.4, 2, 2, 2 $ ).