#include <bits/stdc++.h> using namespace std; vector<string> split_string(string); int main() {long long int n,m,p,i,z,s,l,r,x,y,j,k,z1; cin>>n>>m>>p; long long int a[n+1]; for(i=1;i<=n;i++) cin>>a[i]; while(m--) {z1=0; cin>>x>>y>>z; if(x==1) { a[y]=a[y]^z; } else if(x==2) { z1=0; for(j=y;j<=z;j++) { s=a[j]; if(j+p-1>n) s=0; else { for(k=j+1;k<=j+p-1;k++) s=s^a[k]; } z1=z1+s; // cout<<s<<endl; } cout<<z1<<endl; } } return 0; }