// ROOT : DRAGON3012009
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define el "\n"
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define __ROOT__ int main()
#pragma GCC optimize("O2")
//#pragma GCC optimize("unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#define FOR(i,l,r) for(int i = l ; i <= r ; i ++)
#define FORD(i,r,l) for(int i = r ; i >= l ; i --)
#define REP(i, a ) for(int i = 0 ; i < a ; i ++ )
#define fi first
#define se second
#define M 1000000007
#define MAXN 1000001
#define INF (1ll<<30)
#define BLOCK_SIZE 425
#define MAX_NODE 1001001
#define LOG 19
#define ALPHA_SIZE 26
#define BASE 256
#define NAME "file"
#define compare(v) sort((v).begin(), (v).end()); (v).erase(unique((v).begin(), (v).end()), (v).end());
using namespace std;
using namespace chrono ;
const ll MOD[] = {(ll)1e9 + 2277, (ll)1e9 + 5277, (ll)1e9 + 8277, (ll)1e9 + 9277, (ll) 1e9 + 7 };
const ll NMOD = 1;
const int dx[] = {-1, 0, 1,0};
const int dy[] = {0, 1, 0, -1};
//**Variable**//
ll n, q, nb ;
ll arr[MAXN];
ll cnt[MAXN] ;
ll block[MAXN] ;
ll res[MAXN] ;
//**Struct**//
struct Que {
ll l, r, id ;
bool operator < (const Que & other ) const {
ll blockA = l / BLOCK_SIZE, blockB = other.l / BLOCK_SIZE ;
return blockA == blockB ? (blockA % 2 == 0 ? r < other.r : r > other.r) : blockA < blockB ;
}
};
vector<Que> que ;
//**Function**//
template<class X, class Y >
bool minimize(X & x, const Y &y ) {
return x > y ? x = y, 1:0 ;
}
template<class X, class Y >
bool maximize(X &x, const Y &y ) {
return x < y ? x = y, 1:0 ;
}
void init() {
cin>>n >> q ;
FOR(i,1, n) cin >> arr[i] ;
FOR(i, 1, q ) {
ll l, r ;
cin >> l >> r ;
que.push_back({l, r, i }) ;
}
nb = n / BLOCK_SIZE ;
}
void add(ll value ) {
cnt[value ] ++ ;
if(cnt[value] == 1 ) block[value / BLOCK_SIZE] ++ ;
}
void del(ll value ) {
cnt[value ] -- ;
if(cnt[value] == 0 ) block[value / BLOCK_SIZE] -- ;
}
ll get() {
FOR(i, 0, nb ) {
if(block[i] != BLOCK_SIZE ) {
ll start = i * BLOCK_SIZE ;
FOR(j, start, n ) {
if(cnt[j] == 0 ) return j ;
}
}
}
}
void Mo() {
cnt[0] = 1;
block[0] = 1 ;
sort(que.begin(), que.end() ) ;
ll l = 1, r = 0 ;
for(auto [l1, r1, id ] : que) {
while(l < l1 ) del(arr[l ++ ]) ;
while(l > l1 ) add(arr[--l ]) ;
while(r > r1 ) del(arr[r-- ]) ;
while(r < r1 ) add(arr[++ r]) ;
res[id] = get() ;
}
}
void solve() {
Mo() ;
FOR(i , 1 , q ) cout << res[i] << el ;
}
__ROOT__ {
// freopen(NAME".inp" , "r" , stdin);
// freopen(NAME".out" , "w", stdout) ;
fast;
int t = 1; // cin >> t ;
while(t--) {
init();
solve();
}
return (0&0);
}
Ly8gUk9PVCA6IERSQUdPTjMwMTIwMDkKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBlbCAiXG4iCiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBfX1JPT1RfXyBpbnQgbWFpbigpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIpCi8vI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCi8vI3ByYWdtYSBHQ0MgdGFyZ2V0KCJhdngyLGJtaSxibWkyLHBvcGNudCxsemNudCIpCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IoaW50IGkgPSBsIDsgaSA8PSByIDsgaSArKykKI2RlZmluZSBGT1JEKGkscixsKSBmb3IoaW50IGkgPSByIDsgaSA+PSBsIDsgaSAtLSkKI2RlZmluZSBSRVAoaSwgYSApIGZvcihpbnQgaSA9IDAgOyBpIDwgYSA7IGkgKysgKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgTSAxMDAwMDAwMDA3CiNkZWZpbmUgTUFYTiAxMDAwMDAxCiNkZWZpbmUgSU5GICgxbGw8PDMwKQojZGVmaW5lIEJMT0NLX1NJWkUgNDI1CiNkZWZpbmUgTUFYX05PREUgMTAwMTAwMQojZGVmaW5lIExPRyAxOQojZGVmaW5lIEFMUEhBX1NJWkUgMjYKI2RlZmluZSBCQVNFIDI1NgojZGVmaW5lIE5BTUUgImZpbGUiCiNkZWZpbmUgY29tcGFyZSh2KSBzb3J0KCh2KS5iZWdpbigpLCAodikuZW5kKCkpOyAodikuZXJhc2UodW5pcXVlKCh2KS5iZWdpbigpLCAodikuZW5kKCkpLCAodikuZW5kKCkpOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgY2hyb25vIDsKY29uc3QgbGwgTU9EW10gPSB7KGxsKTFlOSArIDIyNzcsIChsbCkxZTkgKyA1Mjc3LCAobGwpMWU5ICsgODI3NywgKGxsKTFlOSArIDkyNzcsIChsbCkgMWU5ICsgNyB9Owpjb25zdCBsbCBOTU9EID0gMTsKY29uc3QgaW50IGR4W10gPSB7LTEsIDAsIDEsMH07CmNvbnN0IGludCBkeVtdID0gezAsIDEsIDAsIC0xfTsKLy8qKlZhcmlhYmxlKiovLwpsbCBuLCBxLCBuYiAgIDsKbGwgYXJyW01BWE5dOwpsbCBjbnRbTUFYTl0gOwpsbCBibG9ja1tNQVhOXSA7CmxsIHJlc1tNQVhOXSA7Ci8vKipTdHJ1Y3QqKi8vCgpzdHJ1Y3QgUXVlIHsKICAgIGxsIGwsIHIsIGlkIDsKICAgIGJvb2wgb3BlcmF0b3IgPCAoY29uc3QgUXVlICYgb3RoZXIgKSBjb25zdCB7CiAgICAgICAgbGwgYmxvY2tBID0gbCAvIEJMT0NLX1NJWkUsIGJsb2NrQiA9IG90aGVyLmwgLyBCTE9DS19TSVpFIDsKICAgICAgICByZXR1cm4gYmxvY2tBID09IGJsb2NrQiA/IChibG9ja0EgJSAyID09IDAgPyByIDwgb3RoZXIuciA6IHIgPiBvdGhlci5yKSA6IGJsb2NrQSA8IGJsb2NrQiA7CiAgICB9Cn07CnZlY3RvcjxRdWU+IHF1ZSA7Ci8vKipGdW5jdGlvbioqLy8KdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWSA+CmJvb2wgbWluaW1pemUoWCAmIHgsIGNvbnN0IFkgJnkgKSB7CiAgICByZXR1cm4geCA+IHkgPyB4ID0geSwgMTowIDsKfQp0ZW1wbGF0ZTxjbGFzcyBYLCBjbGFzcyBZID4KYm9vbCBtYXhpbWl6ZShYICZ4LCBjb25zdCBZICZ5ICkgewogICAgcmV0dXJuIHggPCB5ID8geCA9IHksIDE6MCA7Cn0KCnZvaWQgaW5pdCgpIHsKICAgIGNpbj4+biA+PiBxIDsKICAgIEZPUihpLDEsIG4pIGNpbiA+PiBhcnJbaV0gOwogICAgRk9SKGksIDEsIHEgKSB7CiAgICAgICAgbGwgbCwgciA7CiAgICAgICAgY2luID4+IGwgPj4gciA7CiAgICAgICAgcXVlLnB1c2hfYmFjayh7bCwgciwgaSB9KSA7CiAgICB9CiAgICBuYiA9IG4gLyBCTE9DS19TSVpFIDsKfQp2b2lkIGFkZChsbCB2YWx1ZSApIHsKICAgIGNudFt2YWx1ZSBdICsrICA7CiAgICBpZihjbnRbdmFsdWVdID09IDEgKSBibG9ja1t2YWx1ZSAgLyBCTE9DS19TSVpFXSArKyA7Cn0Kdm9pZCBkZWwobGwgdmFsdWUgKSB7CiAgICBjbnRbdmFsdWUgXSAtLSAgOwogICAgaWYoY250W3ZhbHVlXSA9PSAwICkgYmxvY2tbdmFsdWUgIC8gQkxPQ0tfU0laRV0gLS0gOwp9CmxsIGdldCgpIHsKICAgIEZPUihpLCAwLCBuYiApIHsKICAgICAgICBpZihibG9ja1tpXSAhPSBCTE9DS19TSVpFICkgewogICAgICAgICAgICBsbCBzdGFydCA9IGkgKiBCTE9DS19TSVpFIDsKICAgICAgICAgICAgRk9SKGosIHN0YXJ0LCBuICkgewogICAgICAgICAgICAgICAgaWYoY250W2pdID09IDAgKSByZXR1cm4gaiA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0Kdm9pZCBNbygpIHsKICAgIGNudFswXSA9IDE7CiAgICBibG9ja1swXSA9IDEgOwogICAgc29ydChxdWUuYmVnaW4oKSwgcXVlLmVuZCgpICkgOwogICAgbGwgbCA9IDEsIHIgPSAwIDsKICAgIGZvcihhdXRvIFtsMSwgcjEsIGlkIF0gOiBxdWUpIHsKICAgICAgICB3aGlsZShsIDwgbDEgKSBkZWwoYXJyW2wgKysgXSkgOwogICAgICAgIHdoaWxlKGwgPiBsMSApIGFkZChhcnJbLS1sIF0pIDsKICAgICAgICB3aGlsZShyID4gcjEgKSBkZWwoYXJyW3ItLSBdKSA7CiAgICAgICAgd2hpbGUociA8IHIxICkgYWRkKGFyclsrKyByXSkgOwogICAgICAgIHJlc1tpZF0gPSBnZXQoKSA7CiAgICB9Cn0Kdm9pZCBzb2x2ZSgpIHsKICAgIE1vKCkgOwogICAgRk9SKGkgLCAgMSAsIHEgKSBjb3V0IDw8IHJlc1tpXSA8PCBlbCAgOwp9CgpfX1JPT1RfXyB7CiAgICAvLyBmcmVvcGVuKE5BTUUiLmlucCIgLCAiciIgLCBzdGRpbik7CiAgICAvLyBmcmVvcGVuKE5BTUUiLm91dCIgLCAidyIsIHN0ZG91dCkgOwogICAgZmFzdDsKICAgIGludCB0ID0gMTsgLy8gY2luID4+IHQgOwogICAgd2hpbGUodC0tKSB7CiAgICAgICAgaW5pdCgpOwogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gKDAmMCk7Cn0KCgoK