#对数据进行处理
n,q=map(int,list(input().split()))
lis=list(map(int,input().split()))
#创建一个dp数组,用于存放每个位置下从索引0到当前索引下的和
dp=[0]*n
for i in range(n):
    if i==0:
        dp[i]=lis[i]
    else:
        dp[i]=lis[i]+dp[i-1]
#遍历取出l,r的值,若l-2小于0,代表l=1,故而他们的和就是dp[r-1]
for _ in range(q):
    l,r=list(map(int,input().split()))
    if l-2<0:
        res=dp[r-1]
    else:
	#否则,它们的和为dp[r-1]和dp[l-1]前一位也就是dp[l-2]的差值
        res=dp[r-1]-dp[l-2]
    print(res)