
#include <iostream>
#include <stdio.h>
using namespace std;
int m,n,k,arr[1000005];
long long rangeSum[4000020];
long long init(int l, int r, int node)
{
if(l==r)
return rangeSum[node]=arr[l];
int mid=(l+r)/2;
return rangeSum[node]=init(l,mid,node*2)
+init(mid+1,r,node*2+1);
}
long long query(int l,int r, int node, int nl, int nr)
{
if(nr<l || r<nl)
return 0;
if(l<=nl && nr<=r)
return rangeSum[node];
int mid=(nl+nr)/2;
return query(l,r,node*2,nl,mid)
+query(l,r,node*2+1,mid+1,nr);
}
long long update(int i,int v,int node,int l,int r)
{
if(i<l || i>r)
return rangeSum[node];
if(l==r)
return rangeSum[node]=arr[i]=v;
int mid=(l+r)/2;
return rangeSum[node]=update(i,v,node*2,l,mid)+
update(i,v,node*2+1,mid+1,r);
}
int main(){
scanf("%d%d%d",&m,&n,&k);
for(int i=1;i<=m;i++)
scanf("%d", &arr[i]);
init(1,m,1);
int a,b,c;
for(int i=0;i<n+k;i++){
scanf("%d%d%d",&a,&b,&c);
if(a==1)
update(b,c,1,1,m);
else
printf("%lld\n", query(b,c,1,1,m));
}
return 0;
}