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