#include<iostream>
#include<stdio.h>
using namespace std;
long n,m;
long t[100005];
long o[100005];
long keres(long x)
{
long i=1,j=n,k;
while(i<=j)
{
k=(i+j)/2;
if(t[k]==x)
return k;
if(t[k]<x)
i=k+1;
else j=k-1;
}
return -1;
}
bool volt;
void ad(long a,long b)
{
int i;
for(i=a;i<=b;++i)
{
t[i]+=o[i];
o[i+1]+=o[i];
o[i]=0;
}
}
struct fa{
fa *bal,*jobb,*apa;
long i,j,xb,xj,x;
int van;
}*q=NULL;
void mad(long i,long b,fa *&q)
{
long k=(q->i+q->j)/2;
if(q->i==k)
{
t[i]+=q->x;
t[i+1]+=q->x;
if(q->i==i)
{
t[i]+=b;
t[i+1]+=b;
q->x=0;
}
else //if(q->j==i)
{
t[i]+=b;
}
q->x=0;
return;
}
if(q->x)
{
q->bal->x+=q->x;
q->jobb->x+=q->x;
q->x=0;
q->van=3;
}
if(i<=k)//Balban van
{
q->van=3;
q->jobb->x+=b;
if(q->van==0)
q->van=2;
mad(i,b,q->bal);
}
else //jobban van
{
q->van=2;
mad(i,b,q->jobb);
}
}
void ad2(long a,long b)
{
//t[a]+=b;
//q->jobb->x+=b;
mad(a,b,q->jobb);
}
void init(long i,long j,fa *&q,fa *&apa)
{
if(i<j)
{
fa *uj=new fa;
uj->apa=apa;
uj->bal=uj->jobb=NULL;
uj->i=i;
uj->j=j;
uj->x=0;
uj->van=0;
uj->xb=0;
uj->xj=0;
q=uj;
init(i,(i+j)/2,q->bal,q);
init((i+j)/2+1,j,q->jobb,q);
}
}
void megy(fa *q,int mely)
{
if(q!=NULL)
{
cout<<mely<<": "<<q->i<<" "<<q->j<<"; "<<q->x<<"\n";
megy(q->bal,mely+1);
megy(q->jobb,mely+1);
}
}
void minden(fa *&q)
{
if(q!=NULL)
{
if(q->j-q->i==1)
{
t[q->i]+=q->x;
t[q->j]+=q->x;
q->x=0;
return;
}
if(q->van==3||q->x)
{
q->bal->x+=q->x;
q->jobb->x+=q->x;
q->x=0;
q->van=0;
minden(q->bal);
minden(q->jobb);
}
else if(q->van==2)
{
q->bal->x+=q->x;
q->jobb->x+=q->x;
q->x=0;
q->van=0;
//minden(q->bal);
minden(q->jobb);
}
}
}
void minden2(long i,long j,fa *&q)
{
long k=(q->i+q->j)/2;
if(q->i==k)
{
minden(q);
return;
}
if(i>k)//csak jobb
{
minden2(i,j,q->jobb);
}
else if(j<=k)//csak bal
{
minden2(i,j,q->bal);
}//mindketto
else minden(q);
}
void beolvas()
{
FILE * f=fopen("aib.in","r");
fscanf(f,"%ld %ld",&n,&m);
//q->apa=q->bal=q->jobb=NULL;
q=new fa;
q->jobb=NULL;
init(1,n,q->jobb,q);
megy(q->jobb,0);
;
long i,x;
t[0]=0;
for(i=1;i<=n;++i)
{
fscanf(f,"%ld",&x);
t[i]=t[i-1]+x;
cout<<t[i]<<" ";
}
cout<<"\n";
int tip,a,b;
for(i=1;i<=m;++i)
{
fscanf(f,"%d %d",&tip,&a);
cout<<tip<<" "<<a;
if(tip==2)
{
//if(volt)
// ad(1,n);
minden(q->jobb);
//cout<<"\n";
//megy(q->jobb,0);
//cout<<"\n";
//for(int i=1;i<=n;++i)
// cout<<t[i]<<" ";
cout<<char(9)<<keres(a)<<"\n";
}
else
{
fscanf(f,"%d",&b);
cout<<" "<<b;
if(tip==1)
{
//if(volt)
// ad(1,b);
minden2(a,b,q->jobb);
//cout<<"\n";
//megy(q->jobb,0);
//cout<<"\n";
cout<<char(9)<<t[b]-t[a-1]<<"\n";
}
else{
o[a]+=b;
ad2(a,b);
//cout<<"\n";
//megy(q->jobb,0);
//for(int i=1;i<=n;++i)
// cout<<t[i]<<" ";
volt=1;
}
}
cout<<"\n";
}
fclose(f);
}
int main()
{
beolvas();
}