#pragma GCC optimize("Ofast") #include using namespace std; typedef long long int ll; typedef unsigned long long int ull; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll myRand(ll B) { return (ull)rng() % B; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n,q; cin >> n >> q; vector a(n); vector> v(n); map mp; for (int i = 0; i < n; ++i) { cin >> a[i]; v[i] = {a[i], i}; mp[a[i]] += 1; } sort(v.rbegin(), v.rend()); vector u(n); for (int i = 0; i < n; ) { int j = i; while (v[i].first == v[j].first) { u[v[i].second] = j; i += 1; } } while (q--) { int x, y; cin >> x >> y; x -= 1, y -= 1; int res = u[y] - u[x] - mp[a[y]]; cout << max(0,res) << "\n"; } }