Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

G. The Awesomest Vertex

time limit per test

5 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputYou are given a rooted tree on $$$n$$$ vertices. The vertices are numbered from $$$1$$$ to $$$n$$$; the root is the vertex number $$$1$$$.

Each vertex has two integers associated with it: $$$a_i$$$ and $$$b_i$$$. We denote the set of all ancestors of $$$v$$$ (including $$$v$$$ itself) by $$$R(v)$$$. The awesomeness of a vertex $$$v$$$ is defined as

$$$$$$\left| \sum_{w \in R(v)} a_w\right| \cdot \left|\sum_{w \in R(v)} b_w\right|,$$$$$$

where $$$|x|$$$ denotes the absolute value of $$$x$$$.

Process $$$q$$$ queries of one of the following forms:

- 1 v x — increase $$$a_v$$$ by a positive integer $$$x$$$.
- 2 v — report the maximum awesomeness in the subtree of vertex $$$v$$$.

Input

The first line contains two integers $$$n$$$ and $$$q$$$ ($$$1 \leq n \leq 2\cdot 10^5, 1 \leq q \leq 10^5$$$) — the number of vertices in the tree and the number of queries, respectively.

The second line contains $$$n - 1$$$ integers $$$p_2, p_3, \dots, p_n$$$ ($$$1 \leq p_i < i$$$), where $$$p_i$$$ means that there is an edge between vertices $$$i$$$ and $$$p_i$$$.

The third line contains $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$-5000 \leq a_i \leq 5000$$$), the initial values of $$$a_i$$$ for each vertex.

The fourth line contains $$$n$$$ integers $$$b_1, b_2, \dots, b_n$$$ ($$$-5000 \leq b_i \leq 5000$$$), the values of $$$b_i$$$ for each vertex.

Each of the next $$$q$$$ lines describes a query. It has one of the following forms:

- 1 v x ($$$1 \leq v \leq n$$$, $$$1\leq x \leq 5000$$$).
- 2 v ($$$1 \leq v \leq n$$$).

Output

For each query of the second type, print a single line with the maximum awesomeness in the respective subtree.

Example

Input

5 6

1 1 2 2

10 -3 -7 -3 -10

10 3 9 3 6

2 1

2 2

1 2 6

2 1

1 2 5

2 1

Output

100

91

169

240

Note

The initial awesomeness of the vertices is $$$[100, 91, 57, 64, 57]$$$. The most awesome vertex in the subtree of vertex $$$1$$$ (the first query) is $$$1$$$, and the most awesome vertex in the subtree of vertex $$$2$$$ (the second query) is $$$2$$$.

After the first update (the third query), the awesomeness changes to $$$[100, 169, 57, 160, 57]$$$ and thus the most awesome vertex in the whole tree (the fourth query) is now $$$2$$$.

After the second update (the fifth query), the awesomeness becomes $$$[100, 234, 57, 240, 152]$$$, hence the most awesome vertex (the sixth query) is now $$$4$$$.

Codeforces (c) Copyright 2010-2019 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Dec/14/2019 19:52:22 (g2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|