#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=5e5+5;
ll n,m,st[4*N];
void update(ll id,ll l,ll r,ll pos,ll val)
{
if(r<pos||l>pos)return ;
if(l==r)
{
st[id]+=val;
return ;
}
ll mid=(l+r)/2;
update(id*2,l,mid,pos,val);
update(id*2+1,mid+1,r,pos,val);
st[id]=max(st[id*2],st[id*2+1]);
}
ll get(ll id,ll l,ll r,ll u,ll v)
{
if(u>r||v<l)return -1e18;
if(l>=u&&r<=v)return st[id];
ll mid=(l+r)/2;
return max(get(id*2,l,mid,u,v),get(id*2+1,mid+1,r,u,v));
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
while(m--)
{
ll k,x,y;
cin>>k>>x>>y;
if(k==0)
{
update(1,1,n,x,y);
}
else
{
cout<<get(1,1,n,x,y)<<"\n";
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcgCmNvbnN0IGxsIE49NWU1KzU7CmxsIG4sbSxzdFs0Kk5dOwp2b2lkIHVwZGF0ZShsbCBpZCxsbCBsLGxsIHIsbGwgcG9zLGxsIHZhbCkKewogICAgaWYocjxwb3N8fGw+cG9zKXJldHVybiA7CiAgICBpZihsPT1yKQogICAgewogICAgICAgIHN0W2lkXSs9dmFsOwogICAgICAgIHJldHVybiA7CiAgICB9CiAgICBsbCBtaWQ9KGwrcikvMjsKICAgIHVwZGF0ZShpZCoyLGwsbWlkLHBvcyx2YWwpOwogICAgdXBkYXRlKGlkKjIrMSxtaWQrMSxyLHBvcyx2YWwpOwogICAgc3RbaWRdPW1heChzdFtpZCoyXSxzdFtpZCoyKzFdKTsKfQpsbCBnZXQobGwgaWQsbGwgbCxsbCByLGxsIHUsbGwgdikKewogICAgaWYodT5yfHx2PGwpcmV0dXJuIC0xZTE4OwogICAgaWYobD49dSYmcjw9dilyZXR1cm4gc3RbaWRdOwogICAgbGwgbWlkPShsK3IpLzI7CiAgICByZXR1cm4gbWF4KGdldChpZCoyLGwsbWlkLHUsdiksZ2V0KGlkKjIrMSxtaWQrMSxyLHUsdikpOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBjaW4+Pm4+Pm07CiAgICB3aGlsZShtLS0pCiAgICB7CiAgICAgICAgbGwgayx4LHk7CiAgICAgICAgY2luPj5rPj54Pj55OwogICAgICAgIGlmKGs9PTApCiAgICAgICAgewogICAgICAgICAgICB1cGRhdGUoMSwxLG4seCx5KTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8Z2V0KDEsMSxuLHgseSk8PCJcbiI7CiAgICAgICAgfQogICAgfQp9