RT,70
using System;
namespace HelloWorld
{
class TREE
{
int[] tr=new int[500005];
public void add(int x,int y,int n){
for(int i=x;i<=n;i+=(i&-i)) tr[i]+=y;
}
public int query(int x){
int sum=0;
for(int i=x;i>0;i-=(i&-i)) sum+=tr[i];
return sum;
}
}
internal class Program
{
static int n,m;
static int[] b=new int[500005];
static void Main()
{
string s=Console.ReadLine();
string[] nums=s.Split(new[]{' '},2);
n=int.Parse(nums[0]);
m=int.Parse(nums[1]);
string t=Console.ReadLine();
string[] a=t.Split(new[]{' '},n);
for(int i=0;i<n;i++) b[i]=int.Parse(a[i]);
TREE tree=new TREE();
for(int i=0;i<n;i++) tree.add(i+1,b[i],n);
while(m-->0){
string p=Console.ReadLine();
string[] x=p.Split(new[]{' '},3);
if(x[0]=="1"){
tree.add(int.Parse(x[1]),int.Parse(x[2]),n);
}else{
Console.WriteLine(tree.query(int.Parse(x[2]))-tree.query(int.Parse(x[1])-1));
}
}
}
}
}