#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
using vvi = vector<vi>;
using pi = pair<int, int>;
using vpi = vector<pi>;
template<class T> bool chmin(T& a, const T& b) {return b < a ? a = b, 1 : 0;}
template<class T> bool chmax(T& a, const T& b) {return a < b ? a = b, 1 : 0;}
#define bg(x) (x).begin()
#define en(x) (x).end()
#define all(x) bg(x), en(x)
#define rep(i, a, b) for (int i = a; i < b; i++)
#define rev(i, a, b) for (int i = a; i >= b; i--)
#define sz(x) int((x).size())
#ifdef LOCAL
#define dbg(x) cerr << #x << " = " << x << "\n"
#else
#define dbg(x)
#endif
vi solve(int n, vi& v, int q, vpi& queries) {
vi ans;
for (auto &[l, r] : queries) {
set<int> x; rep(i, l, r+1) x.insert(v[i]);
int mex = 1; while (x.count(mex)) mex++;
int u = 0;
set<int> y; int cmex = 1;
rep(i, l, r+1) {
y.insert(v[i]);
while (y.count(cmex)) cmex++;
if (cmex == mex) {
u++; y.clear(); cmex = 1;
}
}
ans.push_back(u);
}
return ans;
}