#include <bits/stdc++.h>
using namespace std;
int N, q, l[20][200001], r[20][200001], nxt[20][200001], res;
vector<int> v, H;
void init()
{
for (int i = 0; i < 20; ++i)
{
fill_n(l[i], N + 1, N);
fill_n(r[i], N + 1, N);
fill_n(nxt[i], N + 1, N);
}
H.push_back(0);
v.clear();
for (int i = 0; i < N; ++i)
{
while (!v.empty() && H[v.back()] <= H[i])
{
v.pop_back();
}
l[0][i] = (v.empty() ? N : v.back());
v.push_back(i);
}
v.clear();
for (int i = N - 1; i >= 0; --i)
{
while (!v.empty() && H[v.back()] <= H[i])
{
v.pop_back();
}
r[0][i] = (v.empty() ? N : v.back());
v.push_back(i);
}
for (int i = 0; i < N; ++i)
{
nxt[0][i] = (H[l[0][i]] > H[r[0][i]] ? l[0][i] : r[0][i]);
}
for (int i = 1; i < 20; ++i)
{
for (int j = 0; j < N; ++j)
{
l[i][j] = l[i - 1][l[i - 1][j]];
r[i][j] = r[i - 1][r[i - 1][j]];
nxt[i][j] = nxt[i - 1][nxt[i - 1][j]];
}
}
}
int minimum_jumps(int A, int B, int C, int D)
{
res = 0;
for (int i = 19; i >= 0; --i)
{
if (A <= l[i][B] && r[0][l[i][B]] <= D)
{
B = l[i][B];
}
}
if (C <= r[0][B] && r[0][B] <= D)
{
return 1;
}
for (int i = 19; i >= 0; --i)
{
if (r[0][nxt[i][B]] < C)
{
B = nxt[i][B];
res += (1 << i);
}
}
if (r[0][nxt[0][B]] <= D)
{
return res + 2;
}
for (int i = 19; i >= 0; --i)
{
if (r[i][B] < C)
{
B = r[i][B];
res += (1 << i);
}
}
return (C <= r[0][B] && r[0][B] <= D ? res + 1 : -1);
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>N>>q;
for (int i = 0; i < N; i++)
{
int d; cin>>d;
H.push_back(d);
}
init();
while (q--)
{
int a, b, c, d;
cin>>a>>b>>c>>d;
cout<<minimum_jumps(a, b, c, d)<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgTiwgcSwgbFsyMF1bMjAwMDAxXSwgclsyMF1bMjAwMDAxXSwgbnh0WzIwXVsyMDAwMDFdLCByZXM7CnZlY3RvcjxpbnQ+IHYsIEg7Cgp2b2lkIGluaXQoKQp7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyArK2kpCiAgICB7CiAgICAgICAgZmlsbF9uKGxbaV0sIE4gKyAxLCBOKTsKICAgICAgICBmaWxsX24ocltpXSwgTiArIDEsIE4pOwogICAgICAgIGZpbGxfbihueHRbaV0sIE4gKyAxLCBOKTsKICAgIH0KICAgIEgucHVzaF9iYWNrKDApOwogICAgdi5jbGVhcigpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpCiAgICB7CiAgICAgICAgd2hpbGUgKCF2LmVtcHR5KCkgJiYgSFt2LmJhY2soKV0gPD0gSFtpXSkKICAgICAgICB7CiAgICAgICAgICAgIHYucG9wX2JhY2soKTsKICAgICAgICB9CiAgICAgICAgbFswXVtpXSA9ICh2LmVtcHR5KCkgPyBOIDogdi5iYWNrKCkpOwogICAgICAgIHYucHVzaF9iYWNrKGkpOwogICAgfQogICAgdi5jbGVhcigpOwogICAgZm9yIChpbnQgaSA9IE4gLSAxOyBpID49IDA7IC0taSkKICAgIHsKICAgICAgICB3aGlsZSAoIXYuZW1wdHkoKSAmJiBIW3YuYmFjaygpXSA8PSBIW2ldKQogICAgICAgIHsKICAgICAgICAgICAgdi5wb3BfYmFjaygpOwogICAgICAgIH0KICAgICAgICByWzBdW2ldID0gKHYuZW1wdHkoKSA/IE4gOiB2LmJhY2soKSk7CiAgICAgICAgdi5wdXNoX2JhY2soaSk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkKICAgIHsKICAgICAgICBueHRbMF1baV0gPSAoSFtsWzBdW2ldXSA+IEhbclswXVtpXV0gPyBsWzBdW2ldIDogclswXVtpXSk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8IDIwOyArK2kpCiAgICB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBOOyArK2opCiAgICAgICAgewogICAgICAgICAgICBsW2ldW2pdID0gbFtpIC0gMV1bbFtpIC0gMV1bal1dOwogICAgICAgICAgICByW2ldW2pdID0gcltpIC0gMV1bcltpIC0gMV1bal1dOwogICAgICAgICAgICBueHRbaV1bal0gPSBueHRbaSAtIDFdW254dFtpIC0gMV1bal1dOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1pbmltdW1fanVtcHMoaW50IEEsIGludCBCLCBpbnQgQywgaW50IEQpCnsKICAgIHJlcyA9IDA7CiAgICBmb3IgKGludCBpID0gMTk7IGkgPj0gMDsgLS1pKQogICAgewogICAgICAgIGlmIChBIDw9IGxbaV1bQl0gJiYgclswXVtsW2ldW0JdXSA8PSBEKQogICAgICAgIHsKICAgICAgICAgICAgQiA9IGxbaV1bQl07CiAgICAgICAgfQogICAgfQogICAgaWYgKEMgPD0gclswXVtCXSAmJiByWzBdW0JdIDw9IEQpCiAgICB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTk7IGkgPj0gMDsgLS1pKQogICAgewogICAgICAgIGlmIChyWzBdW254dFtpXVtCXV0gPCBDKQogICAgICAgIHsKICAgICAgICAgICAgQiA9IG54dFtpXVtCXTsKICAgICAgICAgICAgcmVzICs9ICgxIDw8IGkpOwogICAgICAgIH0KICAgIH0KICAgIGlmIChyWzBdW254dFswXVtCXV0gPD0gRCkKICAgIHsKICAgICAgICByZXR1cm4gcmVzICsgMjsKICAgIH0KICAgIGZvciAoaW50IGkgPSAxOTsgaSA+PSAwOyAtLWkpCiAgICB7CiAgICAgICAgaWYgKHJbaV1bQl0gPCBDKQogICAgICAgIHsKICAgICAgICAgICAgQiA9IHJbaV1bQl07CiAgICAgICAgICAgIHJlcyArPSAoMSA8PCBpKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gKEMgPD0gclswXVtCXSAmJiByWzBdW0JdIDw9IEQgPyByZXMgKyAxIDogLTEpOwp9CgpzaWduZWQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBjaW4+Pk4+PnE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgCiAgICB7CiAgICAgICAgaW50IGQ7IGNpbj4+ZDsKICAgICAgICBILnB1c2hfYmFjayhkKTsKICAgIH0KICAgIGluaXQoKTsKICAgIHdoaWxlIChxLS0pCiAgICB7CiAgICAgICAgaW50IGEsIGIsIGMsIGQ7CiAgICAgICAgY2luPj5hPj5iPj5jPj5kOwogICAgICAgIGNvdXQ8PG1pbmltdW1fanVtcHMoYSwgYiwgYywgZCk8PCdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=