#include using namespace std; int main() { int N, Q; cin >> N >> Q; vector A(N), B(N); vector S(1); for (int i = 0; i < N; i++) { cin >> A.at(i); B.at(i) = A.at(i); } sort(B.begin(), B.end()); B.erase(unique(B.begin(), B.end()), B.end()); vector C(B.size()), M(B.size()); for (int i = 0; i < N; i++) { A.at(i) = lower_bound(B.begin(), B.end(), A.at(i)) - B.begin(); M[A.at(i)]++; C.at(A.at(i))++; } for (int i = 0; i < (int)C.size(); i++) S.push_back(S.at(i) + C.at(i)); for (int i = 0; i < Q; i++) { int x, y; cin >> x >> y; cout << max(0LL, S.at(A.at(x - 1) + 1) - S.at(A.at(y - 1) + 1) - M[A.at(x - 1)]) << endl; } }