#include using namespace std; using ll = long long; using ld = long double; template using vc = vector; template using vvc = vc>; void solve(); int main() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(20); ll t = 1; // cin >> t; for (int i = 1; i <= t; i++) solve(); return 0; } #define rep(i, a, b) for (ll i = (a); i < (b); i++) ll dy[4] = {0, 1, 0, -1}, dx[4] = {1, 0, -1, 0}; void solve() { ll n, q; cin >> n >> q; vc a(n); rep(i, 0, n) cin >> a[i]; auto b = a; sort(b.begin(), b.end()); while (q--) { ll x, y; cin >> x >> y; x--, y--; if (a[x] <= a[y]) { cout << 0 << endl; continue; } ll li = upper_bound(b.begin(), b.end(), a[y]) - b.begin(); ll ri = upper_bound(b.begin(), b.end(), a[x] - 1) - b.begin(); ll res = max(0ll, ri - li); cout << res << endl; } }