// Author: 4uckd3v - Nguyen Cao Duc
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX_N = 1e6;
const int MOD = 1e9 + 7;
int n, q, x, y, startMask;
int c[15], Pow[15], a[15];
int dp[MAX_N + 5];
int prv(int c) {
return (c - 1 + 3) % 3;
};
int nxt(int c) {
return (c + 1) % 3;
};
int DP(int mask, int l, int r) {
if (dp[mask] != -1) return dp[mask];
if (mask == startMask) return 0;
int& ret = dp[mask] = 1e9;
for (int i = l; i <= r; i++) {
for (int j = l; j <= r; j++) {
if (i == j) continue;
int oldI = c[i], oldJ = c[j];
int newMask = mask;
newMask -= Pow[i - l] * oldI;
newMask -= Pow[j - l] * oldJ;
c[i] = prv(c[i]);
c[j] = nxt(c[j]);
newMask += Pow[i - l] * c[i];
newMask += Pow[j - l] * c[j];
ret = min(ret, DP(newMask, l, r) + 1);
c[i] = oldI, c[j] = oldJ;
}
}
return ret;
};
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
if (fopen("MAIN.INP", "r")) {
freopen("MAIN.INP", "r", stdin);
freopen("MAIN.OUT", "w", stdout);
};
cin >> n >> q >> x >> y;
for (int i = 1; i <= n; i++) cin >> a[i];
Pow[0] = 1;
for (int i = 1; i <= n; i++) Pow[i] = Pow[i - 1] * 3;
while (q--) {
int l, r;
cin >> l >> r;
startMask = 0;
for (int i = l; i <= r; i++) startMask += Pow[i - l] * a[i], c[i] = 0;
memset(dp, -1, sizeof dp);
cout << (DP(0, l, r) == 1e9 ? -1 : DP(0, l, r)) << '\n';
}
};
Ly8gQXV0aG9yOiA0dWNrZDN2IC0gTmd1eWVuIENhbyBEdWMKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCmNvbnN0IGludCBNQVhfTiA9IDFlNjsKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CgppbnQgbiwgcSwgeCwgeSwgc3RhcnRNYXNrOwppbnQgY1sxNV0sIFBvd1sxNV0sIGFbMTVdOwppbnQgZHBbTUFYX04gKyA1XTsKCmludCBwcnYoaW50IGMpIHsKICAgIHJldHVybiAoYyAtIDEgKyAzKSAlIDM7Cn07CgppbnQgbnh0KGludCBjKSB7CiAgICByZXR1cm4gKGMgKyAxKSAlIDM7Cn07CgppbnQgRFAoaW50IG1hc2ssIGludCBsLCBpbnQgcikgewogICAgaWYgKGRwW21hc2tdICE9IC0xKSByZXR1cm4gZHBbbWFza107CiAgICBpZiAobWFzayA9PSBzdGFydE1hc2spIHJldHVybiAwOwoKICAgIGludCYgcmV0ID0gZHBbbWFza10gPSAxZTk7CgogICAgZm9yIChpbnQgaSA9IGw7IGkgPD0gcjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IGw7IGogPD0gcjsgaisrKSB7CiAgICAgICAgICAgIGlmIChpID09IGopIGNvbnRpbnVlOwogICAgICAgICAgICBpbnQgb2xkSSA9IGNbaV0sIG9sZEogPSBjW2pdOwoKICAgICAgICAgICAgaW50IG5ld01hc2sgPSBtYXNrOwogICAgICAgICAgICBuZXdNYXNrIC09IFBvd1tpIC0gbF0gKiBvbGRJOwogICAgICAgICAgICBuZXdNYXNrIC09IFBvd1tqIC0gbF0gKiBvbGRKOwoKICAgICAgICAgICAgY1tpXSA9IHBydihjW2ldKTsKICAgICAgICAgICAgY1tqXSA9IG54dChjW2pdKTsKCiAgICAgICAgICAgIG5ld01hc2sgKz0gUG93W2kgLSBsXSAqIGNbaV07CiAgICAgICAgICAgIG5ld01hc2sgKz0gUG93W2ogLSBsXSAqIGNbal07CgogICAgICAgICAgICByZXQgPSBtaW4ocmV0LCBEUChuZXdNYXNrLCBsLCByKSArIDEpOwoKICAgICAgICAgICAgY1tpXSA9IG9sZEksIGNbal0gPSBvbGRKOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcmV0Owp9OwoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGlmIChmb3BlbigiTUFJTi5JTlAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbigiTUFJTi5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJNQUlOLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH07CgogICAgY2luID4+IG4gPj4gcSA+PiB4ID4+IHk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKCiAgICBQb3dbMF0gPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBQb3dbaV0gPSBQb3dbaSAtIDFdICogMzsKCiAgICB3aGlsZSAocS0tKSB7CiAgICAgICAgaW50IGwsIHI7CiAgICAgICAgY2luID4+IGwgPj4gcjsKCiAgICAgICAgc3RhcnRNYXNrID0gMDsKICAgICAgICBmb3IgKGludCBpID0gbDsgaSA8PSByOyBpKyspIHN0YXJ0TWFzayArPSBQb3dbaSAtIGxdICogYVtpXSwgY1tpXSA9IDA7CgogICAgICAgIG1lbXNldChkcCwgLTEsIHNpemVvZiBkcCk7CgogICAgICAgIGNvdXQgPDwgKERQKDAsIGwsIHIpID09IDFlOSA/IC0xIDogRFAoMCwgbCwgcikpIDw8ICdcbic7CiAgICB9Cn07