#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=50009;
ll a[maxn];
ll sum[maxn*4];
void getup(int x){
sum[x]=sum[x*2]+sum[x*2+1];
return ;
}
void btree(int left,int right,int root){ //递归建树
if(left==right){
sum[root]=a[left];
return ;
}
int mid=(left+right)/2;
btree(left,mid,root*2);
btree(mid+1,right,root*2+1);
getup(root);
}
ll myquery(int L,int R,int l,int r,int rt){ //区间查询
if(L<=l&&r<=R)
return sum[rt];
int mid=(l+r)/2;
ll ans=0;
if(L<=mid)
ans+=myquery(L,R,l,mid,rt*2);
if(R>mid)
ans+=myquery(L,R,mid+1,r,rt*2+1);
return ans;
}
int main(){
int N,M;
cin>>N>>M;
for(int i=1;i<=N;i++)
cin>>a[i];
btree(1,N,1);
int num1,num2;
while(M--){
cin>>num1>>num2;
cout<<myquery(num1,num2,1,N,1)<<endl;
}
return 0;
}