/*
总结:前缀和问题
求长度为n的序列,共有 m 个区间, 区间内所有数字和的问题
暴力 时间复杂度 O(m * n);
优化 时间复杂度 O(m + n);
方法:前n项和存入一个s数组
求前n项和直接用公式算出结果不再用循环 s(l, r) = s[r] - s[l - 1];
*/
#include <iostream>
using namespace std;
int a[100010], s[100010];
int l, r, n, m;
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i];
s[i] = s[i - 1] + a[i];
}
for (int i = 1; i <= m; i++) {
cin >> l >> r;
cout << s[r] - s[l - 1] << endl;
}
return 0;
}