#include using namespace std; typedef long long ll; ll is_ika(vector &A, ll x) { ll under_mid = upper_bound(A.begin(), A.end(), x) - A.begin(); return under_mid; } ll is_ijo(vector &A, ll x) { ll upper_mid = A.end() - lower_bound(A.begin(), A.end(), x); return upper_mid; } ll is_koe(vector &A, ll x) { ll upper_mid = A.end() - upper_bound(A.begin(), A.end(), x); return upper_mid; } ll is_miman(vector &A, ll x) { ll under_mid = lower_bound(A.begin(), A.end(), x) - A.begin(); return under_mid; } void solve() { ll n,q; cin >> n >> q; vector A(n); for (ll i = 0; i < n; ++i) cin >> A[i]; map juni; for (ll i = 0; i < n; ++i) { juni[i]=A[i]; } sort(A.begin(), A.end()); for (ll qqq = 0; qqq < q; ++qqq) { ll kyo = 0; ll x,y; cin >> x >> y; --x, --y; ll xm = is_miman(A,juni[x]); ll ym = is_ika(A,juni[y]); cout << max((ll)0,xm-ym) << endl; } } int main() { solve(); return 0; }