#include <bits/stdc++.h>
using namespace std;
#define int long long
int sgt[200005];
void build(int n){
//size is 2*n so we have filled from n to 2n-1
for(int i=n-1;i>=1;i--){
//if i is parent then it's left child is 2*i and it's right child is 2*i+1
sgt[i]=sgt[2*i]+sgt[2*i+1];
}
}
int query(int l, int r, int n)
{
l+=n;
r+=n;
int sum=0;
while(l<=r)
{
if(l&1)
{
sum=sum+sgt[l];
l++;
}
if(!(r&1))
{
sum=sum+sgt[r];
r--;
}
l=l>>1;//l=l/2;
r=r>>1;//r=r/2;
}
return sum;
}
void update(int in, int n,int value)
{
in+=n;
sgt[in]=value;
//for root in=1
while(in>1)
{
in=in>>1;//in=in/2;
//in=1
sgt[in] = sgt[in*2]+sgt[in*2+1];
}
return;
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,q;
cin>>n>>q;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
sgt[n+i]=arr[i];
}
build(n);
while(q--){
int type;
cin>>type;
if(type==0){
int l,r;
cin>>l>>r;
cout<<query(l,r,n)<<"\n";
}
else{
int in,val;
cin>>in>>val;
update(in,n,val);
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwoKaW50IHNndFsyMDAwMDVdOwp2b2lkIGJ1aWxkKGludCBuKXsKICAgIC8vc2l6ZSBpcyAyKm4gc28gd2UgaGF2ZSBmaWxsZWQgZnJvbSBuIHRvIDJuLTEKICAgIGZvcihpbnQgaT1uLTE7aT49MTtpLS0pewogICAgICAgICAgICAvL2lmIGkgaXMgcGFyZW50IHRoZW4gaXQncyBsZWZ0IGNoaWxkIGlzIDIqaSBhbmQgaXQncyByaWdodCBjaGlsZCBpcyAyKmkrMQogICAgICAgIHNndFtpXT1zZ3RbMippXStzZ3RbMippKzFdOwogICAgfQp9CmludCBxdWVyeShpbnQgbCwgaW50IHIsIGludCBuKQp7CiAgICBsKz1uOwogICAgcis9bjsKICAgIGludCBzdW09MDsKICAgIHdoaWxlKGw8PXIpCiAgICB7CiAgICAgICAgaWYobCYxKQogICAgICAgIHsKICAgICAgICAgICAgc3VtPXN1bStzZ3RbbF07CiAgICAgICAgICAgIGwrKzsKICAgICAgICB9CiAgICAgICAgaWYoIShyJjEpKQogICAgICAgIHsKICAgICAgICAgICAgc3VtPXN1bStzZ3Rbcl07CiAgICAgICAgICAgIHItLTsKICAgICAgICB9CiAgICAgICAgbD1sPj4xOy8vbD1sLzI7CiAgICAgICAgcj1yPj4xOy8vcj1yLzI7CiAgICB9CiAgICByZXR1cm4gc3VtOwp9Cgp2b2lkIHVwZGF0ZShpbnQgaW4sIGludCBuLGludCB2YWx1ZSkKewogICAgaW4rPW47CiAgICBzZ3RbaW5dPXZhbHVlOwogICAgLy9mb3Igcm9vdCBpbj0xCiAgICB3aGlsZShpbj4xKQogICAgewogICAgICBpbj1pbj4+MTsvL2luPWluLzI7CiAgICAgIC8vaW49MQogICAgICBzZ3RbaW5dID0gc2d0W2luKjJdK3NndFtpbioyKzFdOwogICAgfQogICAgcmV0dXJuOwp9CmludDMyX3QgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwoKICAgIGludCBuLHE7CiAgICBjaW4+Pm4+PnE7CiAgICBpbnQgYXJyW25dOwogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgIHsKICAgICAgICBjaW4+PmFycltpXTsKICAgICAgICBzZ3RbbitpXT1hcnJbaV07CiAgICB9CgogICAgYnVpbGQobik7CgogICAgd2hpbGUocS0tKXsKICAgICAgICBpbnQgdHlwZTsKICAgICAgICBjaW4+PnR5cGU7CgogICAgICAgIGlmKHR5cGU9PTApewogICAgICAgICAgIGludCBsLHI7CiAgICAgICAgICAgY2luPj5sPj5yOwogICAgICAgICAgIGNvdXQ8PHF1ZXJ5KGwscixuKTw8IlxuIjsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgIGludCBpbix2YWw7CiAgICAgICAgICBjaW4+PmluPj52YWw7CiAgICAgICAgICB1cGRhdGUoaW4sbix2YWwpOwogICAgICAgIH0KCiAgICB9CiAgICByZXR1cm4gMDsKfQo=