由于这里是对具体的数值进行判断可以直接使用lower_bound和upper_bound

#include<bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, q;
    cin >> n >> q;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    for (int i = 0; i < q; i++) {
        int l, r;
        cin >> l >> r;
        auto it_r = upper_bound(a.begin(), a.end(), r);
        auto it_l = lower_bound(a.begin(), a.end(), l);
        int ans = distance(it_l, it_r);
        cout << ans << endl;
    }
}