# 前缀和

#include <iostream>

using namespace std;

const int N = 1e6 + 10;

int n, m;
int a[N], s[N];

int main(){
	scanf("%d%d", &n, &m);
	for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
	for(int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
	while(m--){
		int l, r;
		scanf("%d%d", &l, &r);
		printf("%d\n", s[r] - s[l - 1]);
	}
	return 0;
}
#include <iostream>

using namespace std;

const int N = 1e6 + 10;

int n, m;
int a[N], s[N];


int main(){
    // ios::sync_with_stdio(false);
    //这句话原理就是让cin和标准输入输出不同步
    //提高cin的提取速度
    //但不能使用scanf了
    
    
    scanf("%d%d", &n, &m);
    
    for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
    
    for(int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
    //前缀和初始化
    
    while(m--){
        int l, r;
        scanf("%d%d", &l, &r);
        //从第l个加到r个
        printf("%d\n", s[r] - s[l - 1]);
    }
    
    return 0;
}