Chef likes trees a lot. Now he thinking about one interesting problem on trees. He finds the following problem interesting, and you?

Given a tree

**T**and**Q**queries to it. Tree**T**has**N**nodes numbered from 1 to**N**. Each node**v**has a value**A**associated with it. Queries can be one of three types._{v}**1 u v**- reverse the values on the path between vertices**u**and**v**.**2 u**- print "Yes" if all the values on the path from_{l}u_{r}v_{l}v_{r}**u**to_{l}**u**are exactly same as that of path from_{r}**v**to_{l}**v**, and "No" otherwise. It is ensured that length of both the paths are same._{r}**3 u**- Copy all values on path from_{l}u_{r}v_{l}v_{r}**u**to_{l}**u**and insert them into the path from_{r}**v**to_{l}**v**. It is ensured that length of both the paths are same._{r}

### Input

The first line contains two integers

**N**and**Q**.
The second line contains

**N**space-separeted integers denoting**A**- the values associated with nodes._{v}
Next

**N-1**lines contains two space-separeted integers**u**,**v**denoting the nodes connected by an edge.### Output

For each query of second type output your answer in a single line.

### Constraints

**1**≤**N, Q**≤**10**^{5}**1**≤**A**≤_{i}**10**^{3}**1**≤**u, v, u**≤_{l}, u_{r}, v_{l}, v_{r}**N**

### Subtasks

**Subtask 1: (21 pts)****N, Q**≤ 25000.**Subtask 2: (79 pts)**Original constraints.

### Example

**Input:**
`5 8
1 2 3 4 5
1 2
1 3
2 4
2 5
2 1 3 1 2
3 1 1 2 2
3 1 1 3 3
2 1 3 1 2
1 2 5
2 1 3 1 2
1 2 5
2 1 3 1 2`
**Output:**
`No
Yes
No
Yes`

`
`

` ANSWER`