Cow Land

트리의 각 정점 값이 주어질 때, 정점 값을 갱신하고 두 정점 사이 경로 위 값들의 XOR을 구하는 질의를 처리한다.

어려움8트리DFS세그먼트 트리비트 연산아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Cow Land is a special amusement park for cows, where they roam around, eat delicious grass, and visit different cow attractions (the roller cowster is particularly popular).

There are a total of NN different attractions (2N1052 \leq N \leq 10^5). Certain pairs of attractions are connected by pathways, N1N-1 in total, in such a way that there is a unique route consisting of various pathways between any two attractions. Each attraction ii has an integer enjoyment value e_ie\_i, which can change over the course of a day, since some attractions are more appealing in the morning and others later in the afternoon.

A cow that travels from attraction ii to attraction jj gets to experience all the attractions on the route from ii to jj. Curiously, the total enjoyment value of this entire route is given by the bitwise XOR of all the enjoyment values along the route, including those of attractions ii and jj.

Please help the cows determine the enjoyment values of the routes they plan to use during their next trip to Cow Land.

입력

The first line of input contains NN and a number of queries QQ (1Q1051 \leq Q \leq 10^5). The next line contains e_1e_Ne\_1 \ldots e\_N (0e_i1090 \leq e\_i \leq 10^9). The next N1N-1 lines each describe a pathway in terms of two integer attraction IDs aa and bb (both in the range 1N1 \ldots N). Finally, the last QQ lines each describe either an update to one of the e_ie\_i values or a query for the enjoyment of a route. A line of the form "1 ii vv" indicates that e_ie\_i should be updated to value vv, and a line of the form "2 ii jj" is a query for the enjoyment of the route connecting attractions ii and jj.

In test data worth at most 50% of points, there will be no changes to the values of the attractions.

출력

For each query of the form "2 ii jj", print on a single line the enjoyment of the route from ii to jj.