/* * ******************************************************************************************** * AUTHOR : Vijju123 * * Language: C++14 * * Purpose: - * * IDE used: Codechef IDE. * ******************************************************************************************** * Comments will be included in practice problems if it helps ^^ */ #include <iostream> #include<bits/stdc++.h> using namespace std; long long int P(int i, long long arr[],int n,int p) { int ans=0; int k=i; if(k+p-1>=n)return 0; for(;i<=k+p-1;i++)ans^=arr[i]; return ans; } int main() { // your code goes here #ifdef JUDGE freopen("input.txt", "rt", stdin); freopen("output.txt", "wt", stdout); #endif ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int n,m,p; cin>>n>>m>>p; int t,i,l,r; long long arr[n],ans=0; for(i=0;i<n;i++)cin>>arr[i]; while(m--) { cin>>t; if(t==1) { cin>>l>>r; --l; //--r; arr[l]=arr[l]^r; } else { //for(i=0;i<n;i++)cout<<arr[i]<<" ";cout<<endl; cin>>l>>r; --l; --r; int z; ans=0; for(i=l;i<=r;i++) { z=P(i,arr,n,p); ans+=z; if(i+p-1>=n)break; //cout<<z<<endl; } cout<<ans<<"\n"; } } return 0; }