#include using namespace std; #define int long long int lowbit(int x); void update(int i,int n,int num,vector &a); int query(int i,vector &a); int rangeQuery(int l,int r,vector &a); int readint(); signed main(){ int n=readint(),m=readint(); vector a(n+1,0); for(int i=1;i<=n;i++){ int num; cin>>num; update(i, n, num, a); } for(int i=1;i<=m;i++){ const int o = readint(); if(o==1){ const int x=readint(),k=readint(); update(x, n, k, a); }else{ const int x=readint(),y=readint(); cout< &a){ return query(r, a) - query(l-1, a); } int query(int i,vector &a){ int sum=0; while(i>0){ sum+=a[i]; i-=lowbit(i); } return sum; } void update(int i,int n,int num,vector &a){ while(i<=n){ a[i]+=num; i+=lowbit(i); } } int lowbit(int x){ return x&(-x); }