#include <bits/stdc++.h>
using namespace std;
//
const int maxn = 1e5 + 5;
//
int n, q, A[maxn], rmq[maxn][20];
//
void build (void)
{
    for (int i = 1; i <= n; ++i)
        rmq[i][0] = i;
    for (int u, v, j = 1; (1 << j) <= n; ++j)
        for (int i = 1; i + (1 << j) - 1 <= n; ++i)
            u = rmq[i][j - 1],
            v = rmq[i + (1 << j - 1)][j - 1],
            rmq[i][j] = (A[u] > A[v] ? v : u);
}
int get (int l, int r)
{
    int k = __lg(r - l + 1);
    //
    l = rmq[l][k];
    r = rmq[r - (1 << k) + 1][k];
    return A[l] > A[r] ? r : l;
}
//
void process (void)
{
    cin >> n >> q;
    for (int i = 1; i <= n; ++i)
        cin >> A[i];
    build();
    for (int l, r; q--; cout << '\n')
        cin >> l >> r,
        cout << get(l, r);
}
//
signed main (void)
{
    ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
    process();
}