#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N, Q;
cin >> N >> Q;
vector<int> array(N);
for (int i = 0; i < N; i++) {
cin >> array[i];
}
unordered_map<int, int> count;
for (int num : array) {
count[num]++;
}
vector<int> prefixCount(N + 1, 0);
for (int i = 1; i <= N; i++) {
prefixCount[i] = prefixCount[i - 1] + (count[array[i - 1]] == 2 ? 1 : 0);
}
for (int q = 0; q < Q; q++) {
int L, R;
cin >> L >> R;
int result = prefixCount[R] - prefixCount[L - 1];
cout << result << endl;
}
return 0;
}