P0791

tree

tree

给定一棵包含 nn 个点的树,每个点的初始权值均为 11。你需要对这棵树执行 qq 次操作,每次操作为以下四种之一:

  • + u v c+\ u\ v\ c:将从点 uu 到点 vv 的路径上所有点的权值加上自然数 cc;
  • − u1 v1 u2 v2-\ u_1\ v_1\ u_2\ v_2:删除树中原有的边 (u1,v1)(u_1,v_1),并加入一条新边 (u2,v2)(u_2,v_2)。保证操作完成后,图仍然是一棵树;
  • ∗ u v c*\ u\ v\ c:将从点 uu 到点 vv 的路径上所有点的权值乘以自然数 cc;
  • / u v/\ u\ v:询问从点 uu 到点 vv 的路径上所有点的权值之和,并输出该结果对 5106151061 取余后的值。

输入格式

第一行包含两个整数 n,qn,q,分别表示树的点数和操作数。

接下来 n−1n-1 行,每行包含两个正整数 u,vu,v,表示树中存在一条连接点 uu 和点 vv 的边。

接下来 qq 行,每行描述一个操作,格式如题目描述所示。

输出格式

对于每个 / u v/\ u\ v 操作,输出一行,表示对应询问的答案。

样例输入

3 2
1 2
2 3
* 1 3 4
/ 1 1

样例输出

4

数据范围

  • 对于 10%10\% 的数据,保证 1≤n,q≤20001\le n,q\le 2000;
  • 另外 15%15\% 的数据,保证 1≤n,q≤5×1041\le n,q\le 5\times 10^4,没有 −- 操作,并且初始树为一条链;
  • 另外 35%35\% 的数据,保证 1≤n,q≤5×1041\le n,q\le 5\times 10^4,没有 −- 操作;
  • 对于 100%100\% 的数据,保证 1≤n,q≤1051\le n,q\le 10^5,0≤c≤1040\le c\le 10^4。

来源与许可

本题题面与测试数据整理自 BZOJ 2631。

样例 1

输入

3 2
1 2
2 3
* 1 3 4
/ 1 1

输出

4