2,9,10TLE
def lowbit(x):
return x & (-x)
def init(x):
i=x
t=lowbit(x)
while t>0:
tree[i]+=diff_a[x]
x-=1
t-=1
def updata(x,y,k):
#diff(x)+k diff(y+1)-k
while x<=n:
tree[x]+=k
x+=lowbit(x)
y+=1
while y<=n:
tree[y]-=k
y+=lowbit(y)
def query(x):
ans=0
while x>0:
ans+=tree[x]
x-=lowbit(x)
return ans
n,m=map(int,input().split())
a=[0]+list(map(int,input().split()))
diff_a=[0 for i in range(n+1)]
#sum(diff_a)=a[]
for i in range(1,n+1):
diff_a[i]=a[i]-a[i-1]
tree=[0 for i in range(0,n+1)]
for i in range(1,n+1):
init(i)
for i in range(m):
data=list(map(int,input().split()))
if len(data)==4:
updata(data[1],data[2],data[3])
else:
print(query(data[1]))