#P1254D. Tree Queries

    ID: 4000 Type: RemoteJudge 5000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 10 Uploaded By: Tags>data structuresprobabilitiestrees*2700

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 nn vertices. Vertices are numbered from 11 to nn. A tree with nn vertices is an undirected connected graph with n1n-1 edges. Initially, Hanh sets the value of every vertex to 00.

Now, Hanh performs qq operations, each is either of the following types:

  • Type 11: Hanh selects a vertex vv and an integer dd. Then he chooses some vertex rr uniformly at random, lists all vertices uu such that the path from rr to uu passes through vv. Hanh then increases the value of all such vertices uu by dd.
  • Type 22: Hanh selects a vertex vv and calculates the expected value of vv.

Since Hanh is good at biology but not math, he needs your help on these operations.

The first line contains two integers nn and qq (1n,q1500001 \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 n1n - 1 lines contains two integers uu and vv (1u,vn1 \leq u, v \leq n), denoting that there is an edge connecting two vertices uu and vv. It is guaranteed that these n1n - 1 edges form a tree.

Each of the last qq lines describes an operation in either formats:

  • 11 vv dd (1vn,0d1071 \leq v \leq n, 0 \leq d \leq 10^7), representing a first-type operation.
  • 22 vv (1vn1 \leq v \leq n), representing a second-type operation.

It is guaranteed that there is at least one query of the second type.

For each operation of the second type, write the expected value on a single line.

Let M=998244353M = 998244353, it can be shown that the expected value can be expressed as an irreducible fraction pq\frac{p}{q}, where pp and qq are integers and q≢0(modM)q \not \equiv 0 \pmod{M}. Output the integer equal to pq1modMp \cdot q^{-1} \bmod M. In other words, output such an integer xx that 0x<M0 \le x < M and xqp(modM)x \cdot q \equiv p \pmod{M}.

Input

The first line contains two integers nn and qq (1n,q1500001 \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 n1n - 1 lines contains two integers uu and vv (1u,vn1 \leq u, v \leq n), denoting that there is an edge connecting two vertices uu and vv. It is guaranteed that these n1n - 1 edges form a tree.

Each of the last qq lines describes an operation in either formats:

  • 11 vv dd (1vn,0d1071 \leq v \leq n, 0 \leq d \leq 10^7), representing a first-type operation.
  • 22 vv (1vn1 \leq v \leq n), representing a second-type operation.

It is guaranteed that there is at least one query of the second type.

Output

For each operation of the second type, write the expected value on a single line.

Let M=998244353M = 998244353, it can be shown that the expected value can be expressed as an irreducible fraction pq\frac{p}{q}, where pp and qq are integers and q≢0(modM)q \not \equiv 0 \pmod{M}. Output the integer equal to pq1modMp \cdot q^{-1} \bmod M. In other words, output such an integer xx that 0x<M0 \le x < M and xqp(modM)x \cdot q \equiv p \pmod{M}.

Sample Input 1

5 12
1 2
1 3
2 4
2 5
1 1 1
2 1
2 2
2 3
2 4
2 5
1 2 2
2 1
2 2
2 3
2 4
2 5

Sample Output 1

1
199648871
399297742
199648871
199648871
598946614
199648873
2
2
2

Note

The image below shows the tree in the example:

For the first query, where v=1v = 1 and d=1d = 1:

  • If r=1r = 1, the values of all vertices get increased.
  • If r=2r = 2, the values of vertices 11 and 33 get increased.
  • If r=3r = 3, the values of vertices 11, 22, 44 and 55 get increased.
  • If r=4r = 4, the values of vertices 11 and 33 get increased.
  • If r=5r = 5, the values of vertices 11 and 33 get increased.

Hence, the expected values of all vertices after this query are (1,0.4,0.8,0.4,0.41, 0.4, 0.8, 0.4, 0.4).

For the second query, where v=2v = 2 and d=2d = 2:

  • If r=1r = 1, the values of vertices 22, 44 and 55 get increased.
  • If r=2r = 2, the values of all vertices get increased.
  • If r=3r = 3, the values of vertices 22, 44 and 55 get increased.
  • If r=4r = 4, the values of vertices 11, 22, 33 and 55 get increased.
  • If r=5r = 5, the values of vertices 11, 22, 33 and 44 get increased.

Hence, the expected values of all vertices after this query are (2.2,2.4,2,2,22.2, 2.4, 2, 2, 2).