#include using namespace std; using ll = long long; template istream& operator >> (istream& is, vector& vec) { for(T& x : vec) is >> x; return is; } int main(){ ios::sync_with_stdio(false); cin.tie(0); int N, Q, x, y; cin >> N >> Q; vector A(N), B(N), S(N + 1), pos(N); cin >> A; iota(B.begin(), B.end(), 0); sort(B.begin(), B.end(), [&](int lhs, int rhs){return A[lhs] > A[rhs];}); for(int i = 0, j = 0; i < N; j++){ int p = i; while(i < N && A[B[i]] == A[B[p]]) pos[B[i++]] = j; S[j + 1] = S[j] + i - p; } while(Q--){ cin >> x >> y; cout << max(0, S[pos[--y]] - S[pos[--x] + 1]) << '\n'; } }