#include #define endl '\n' #pragma GCC optimize("Ofast,unroll-loops") #pragma GCC target("avx2,sse,sse2") using namespace std; void speed() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); } const int maxn=2*1e4+2; int n,q,a[maxn],x[maxn]; vectorv[maxn];//,p[maxn]; int used[maxn]; int lazy[maxn]; void read() { cin>>n>>q; for(int i=1; i<=n; i++) { cin>>a[i]; x[i]=a[i]; } int u1,u2; for(int i=1; i>u1>>u2; //p[u2].push_back(u1); v[u1].push_back(u2); } } void init(int beg,int cx) { used[beg]=1; x[beg]=(x[beg]^cx); int sz=v[beg].size(),nb; for(int i=0; i>type>>node; if(type==1) { cin>>value; if(lazy[node]>0)push_lazy(node,a[node]); lazy[node]=a[node]; a[node]=value; push_lazy(node,a[node]); //update(node,a[node],old); } else { cout<