#include <bits/stdc++.h>
using namespace std;
const int MAXS = 100000;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, Q;
cin >> N >> Q;
bitset<MAXS + 1> bs;
bs[0] = 1;
for (int i = 0; i < N; i++) {
int x;
cin >> x;
bs |= (bs << x);
}
vector<int> pref(MAXS + 1, 0);
for (int i = 1; i <= MAXS; i++) {
pref[i] = pref[i - 1] + bs[i];
}
while (Q--) {
int L, R;
cin >> L >> R;
cout << pref[R] - pref[L - 1] << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYUyA9IDEwMDAwMDsKCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgTiwgUTsKICAgIGNpbiA+PiBOID4+IFE7CgogICAgYml0c2V0PE1BWFMgKyAxPiBiczsKICAgIGJzWzBdID0gMTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgewogICAgICAgIGludCB4OwogICAgICAgIGNpbiA+PiB4OwogICAgICAgIGJzIHw9IChicyA8PCB4KTsKICAgIH0KCiAgICB2ZWN0b3I8aW50PiBwcmVmKE1BWFMgKyAxLCAwKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE1BWFM7IGkrKykgewogICAgICAgIHByZWZbaV0gPSBwcmVmW2kgLSAxXSArIGJzW2ldOwogICAgfQoKICAgIHdoaWxlIChRLS0pIHsKICAgICAgICBpbnQgTCwgUjsKICAgICAgICBjaW4gPj4gTCA+PiBSOwogICAgICAgIGNvdXQgPDwgcHJlZltSXSAtIHByZWZbTCAtIDFdIDw8ICdcbic7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=