def find(a,l,r,p): if l+p>len(a): return 0 ans=0 x=0 for i in range(p): x^=a[l+i] #print(a) #print(x) ans=x j=l for i in range(l+p,r+p): if i>=len(a): break x^=a[j] x^=a[i] #print(x) ans+=x j+=1 return ans n,m,p=map(int,input().split()) a=list(map(int,input().split())) a.insert(0,0) for x in range(m): t,i,j=map(int,input().split()) if t==1: a[i]=a[i]^j else: print(find(a,i,j,p))