#include <bits/stdc++.h>
using namespace std;
#define fastIO ios_base::sync_with_stdio(0); cin.tie(0);
#define ll long long
#define all(x) x.begin(), x.end()
const int INF = 1e9;
const int N = 1e5+5;
struct query{
int l, r, id;
} Q[N];
int n, q, a[N], BLOCK_SIZE, L=1, R=0, cnt[N], res[N];
set<int> se;
void solve(int i){
while (R<Q[i].r){
R++;
if (cnt[a[R]]==0){
se.erase(a[R]);
}
cnt[a[R]]++;
}
while (L>Q[i].l){
L--;
if (cnt[a[L]]==0){
se.erase(a[L]);
}
cnt[a[L]]++;
}
while (R>Q[i].r){
cnt[a[R]]--;
if (cnt[a[R]]==0){
se.insert(a[R]);
}
R--;
}
while (L<Q[i].l){
cnt[a[L]]--;
if (cnt[a[L]]==0){
se.insert(a[L]);
}
L++;
}
}
bool MO(query x, query y){
int X = x.l/BLOCK_SIZE;
int Y = y.l/BLOCK_SIZE;
if (X!=Y) return X<Y;
if (X&1) return x.r<y.r;
return x.r>y.r;
}
int main(){
fastIO;
cin >> n >> q;
for (int i=1; i<=n; i++) cin >> a[i];
for (int i=1; i<=q; i++){
cin >> Q[i].l >> Q[i].r;
Q[i].id = i;
}
BLOCK_SIZE = sqrt(n);
sort(Q+1, Q+1+q, MO);
for (int i=1; i<=n; i++) se.insert(i);
for (int i=1; i<=q; i++){
solve(i);
res[Q[i].id] = *(se.begin());
}
for (int i=1; i<=q; i++){
cout << res[i] << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdElPIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQoKY29uc3QgaW50IElORiA9IDFlOTsKY29uc3QgaW50IE4gPSAxZTUrNTsKCnN0cnVjdCBxdWVyeXsKICAgIGludCBsLCByLCBpZDsKfSBRW05dOwppbnQgbiwgcSwgYVtOXSwgQkxPQ0tfU0laRSwgTD0xLCBSPTAsIGNudFtOXSwgcmVzW05dOwpzZXQ8aW50PiBzZTsKCnZvaWQgc29sdmUoaW50IGkpewogICAgd2hpbGUgKFI8UVtpXS5yKXsKICAgICAgICBSKys7CiAgICAgICAgaWYgKGNudFthW1JdXT09MCl7CiAgICAgICAgICAgIHNlLmVyYXNlKGFbUl0pOwogICAgICAgIH0KICAgICAgICBjbnRbYVtSXV0rKzsKICAgIH0KICAgIHdoaWxlIChMPlFbaV0ubCl7CiAgICAgICAgTC0tOwogICAgICAgIGlmIChjbnRbYVtMXV09PTApewogICAgICAgICAgICBzZS5lcmFzZShhW0xdKTsKICAgICAgICB9CiAgICAgICAgY250W2FbTF1dKys7CiAgICB9CiAgICB3aGlsZSAoUj5RW2ldLnIpewogICAgICAgIGNudFthW1JdXS0tOwogICAgICAgIGlmIChjbnRbYVtSXV09PTApewogICAgICAgICAgICBzZS5pbnNlcnQoYVtSXSk7CiAgICAgICAgfQogICAgICAgIFItLTsKICAgIH0KICAgIHdoaWxlIChMPFFbaV0ubCl7CiAgICAgICAgY250W2FbTF1dLS07CiAgICAgICAgaWYgKGNudFthW0xdXT09MCl7CiAgICAgICAgICAgIHNlLmluc2VydChhW0xdKTsKICAgICAgICB9CiAgICAgICAgTCsrOwogICAgfQp9Cgpib29sIE1PKHF1ZXJ5IHgsIHF1ZXJ5IHkpewogICAgaW50IFggPSB4LmwvQkxPQ0tfU0laRTsKICAgIGludCBZID0geS5sL0JMT0NLX1NJWkU7CgogICAgaWYgKFghPVkpIHJldHVybiBYPFk7CiAgICBpZiAoWCYxKSByZXR1cm4geC5yPHkucjsKICAgIHJldHVybiB4LnI+eS5yOwp9CgppbnQgbWFpbigpewogICAgZmFzdElPOwoKICAgIGNpbiA+PiBuID4+IHE7CiAgICBmb3IgKGludCBpPTE7IGk8PW47IGkrKykgY2luID4+IGFbaV07CiAgICBmb3IgKGludCBpPTE7IGk8PXE7IGkrKyl7CiAgICAgICAgY2luID4+IFFbaV0ubCA+PiBRW2ldLnI7CiAgICAgICAgUVtpXS5pZCA9IGk7CiAgICB9CiAgICBCTE9DS19TSVpFID0gc3FydChuKTsKICAgIHNvcnQoUSsxLCBRKzErcSwgTU8pOwogICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIHNlLmluc2VydChpKTsKICAgIGZvciAoaW50IGk9MTsgaTw9cTsgaSsrKXsKICAgICAgICBzb2x2ZShpKTsKICAgICAgICByZXNbUVtpXS5pZF0gPSAqKHNlLmJlZ2luKCkpOwogICAgfQogICAgZm9yIChpbnQgaT0xOyBpPD1xOyBpKyspewogICAgICAgIGNvdXQgPDwgcmVzW2ldIDw8ICdcbic7CiAgICB9Cn0=