#include #define ff first #define ss second #define ll long long #define pb push_back using namespace std; typedef pair pii; const int mod=998244353; inline int add(int x,int y){int ret=x+y;if(ret>=mod)ret-=mod;return ret;} inline int sub(int x,int y){int ret=x-y;if(ret<0)ret+=mod;return ret;} inline int mul(int x,int y){return ((ll)x*y)%mod;} inline int step(int base,int pw){if(base==0)return 0;int ret=1;while(pw){if(pw&1)ret=mul(ret,base);base=mul(base,base);pw>>=1;}return ret;} inline int invv(int x){return step(x,mod-2);} const int maxn=4e4+10; int a[maxn],n,q,start[maxn],ende[maxn],tree[maxn*4]; vectorvect[maxn]; vectorniz; void go(int x,int prv){ start[x]=niz.size(); niz.pb(a[x]); for(int i=0;iid || rrp || r=lp && r<=rp)return tree[x]; int mid=(l+r)/2; return (query(x*2,l,mid,lp,rp)^query(x*2+1,mid+1,r,lp,rp)); } int main(){ freopen("xor.in","r",stdin); freopen("xor.out","w",stdout); scanf("%d %d",&n,&q); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i