#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;
}