#include<iostream>
#include<cstdio>
#include<map>
#define ll long long
#define FIO "dream"
ll n,m;
ll num[1000005];
ll pre[1000005];
std::map<ll,int>QWQ;
std::map<ll,bool>QAQ;
ll ans1,ans2,ans3 = 0,ans4 = 1e18;
int main(){
scanf("%lld%lld",&n,&m);
QWQ[0] ++ ;
for(int i = 1;i <= n;++i){
scanf("%lld",&num[i]);
pre[i] = pre[i - 1] ^ num[i];
QWQ[pre[i]] ++ ;
}
ll ans = 0;
for(int i = 1;i <= n;++i){
if(!QAQ[pre[i]]){
ans += (QWQ[pre[i]]) * (QWQ[pre[i]] - 1) / 2;
QAQ[pre[i]] = 1;
}
}
for(int i = 1;i <= m;++i){
ll p,x;
scanf("%lld%lld",&p,&x);
ll before = pre[p];
ll now = (pre[p] ^= x);
QWQ[before] -- ;
ans = ans + QWQ[now] - QWQ[before];
QWQ[now] ++ ;
ans1 ^= ans;
ans2 += (ans % 2);
ans3 = std::max(ans3,ans);
ans4 = std::min(ans4,ans);
}
std::cout<<ans1<<std::endl<<ans2<<std::endl<<ans3<<std::endl<<ans4<<std::endl;
}
和正解拍上了 是最草的