#include <bits/stdc++.h>
#define mx 100005
#define FILENAME "fulltest.txt"
using namespace std;
int n, q;
int counter[mx];
int arr[mx];
int start[mx];
int st[3*mx];
int getMid(int st, int ed)
{
return st + (ed - st)/2;
}
int getOcc(int ss, int se, int qs, int qe, int si)
{
if (qs <= ss&& qe >= se)
return st[si];
if (se < qs || ss > qe)
return -1;
int mid = getMid(ss, se);
return max(getOcc(ss, mid, qs, qe, si*2+1), getOcc(mid+1, se, qs, qe, si*2+2));
}
void build_(int ss, int se, int si)
{
if (ss == se)
{
st[si] = counter[arr[ss]];
return;
}
int mid = getMid(ss, se);
int l = si*2+1;
int r = si*2+2;
build_(ss, mid, l);
build_(mid+1, se, r);
st[si] = max(st[l], st[r]);
}
int main()
{
while (scanf("%d", &n))
{
if (n == 0)
break;
scanf("%d", &q);
memset(st, 0, sizeof(st));
memset(counter, 0, sizeof(counter));
memset(start, 0, sizeof(start));
for (int i = 0; i< n; i++)
{
scanf("%d", &arr[i]);
counter[arr[i]]++;
}
int y = mx, k = 0;
for (int i = 0; i< n; i++)
{
if (y != arr[i])
{
k = i;
y = arr[i];
}
start[i] = k;
}
build_(0, n-1, 0);
for (int i = 0; i < q; i++)
{
int ans = 0, k = 0, f = 0, sc = 0, th = 0;
int qs, qe;
scanf("%d %d", &qs, &qe);
qs--;
qe--;
if (arr[qs] != arr[qe])
{
k = start[qs] + counter[arr[qs]];
f = k - qs;
sc = qe - start[qe] + 1;
ans = max(f, sc);
if (k <= start[qe] - 1){
th = getOcc(0, n-1, k, start[qe] - 1, 0);
ans = max(ans, th);
}
printf("%d\n", ans);
}
else
{
printf("%d\n", qe - qs + 1);
}
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbXggMTAwMDA1CiNkZWZpbmUgRklMRU5BTUUgImZ1bGx0ZXN0LnR4dCIKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuLCBxOwppbnQgY291bnRlcltteF07CmludCBhcnJbbXhdOwppbnQgc3RhcnRbbXhdOwppbnQgc3RbMypteF07CmludCBnZXRNaWQoaW50IHN0LCBpbnQgZWQpCnsKICAgIHJldHVybiBzdCArIChlZCAtIHN0KS8yOwp9CgppbnQgZ2V0T2NjKGludCBzcywgaW50IHNlLCBpbnQgcXMsIGludCBxZSwgaW50IHNpKQp7CiAgICBpZiAocXMgPD0gc3MmJiBxZSA+PSBzZSkKICAgICAgICByZXR1cm4gc3Rbc2ldOwogICAgaWYgKHNlIDwgcXMgfHwgc3MgPiBxZSkKICAgICAgICByZXR1cm4gLTE7CiAgICBpbnQgbWlkID0gZ2V0TWlkKHNzLCBzZSk7CiAgICByZXR1cm4gbWF4KGdldE9jYyhzcywgbWlkLCBxcywgcWUsIHNpKjIrMSksIGdldE9jYyhtaWQrMSwgc2UsIHFzLCBxZSwgc2kqMisyKSk7Cn0KCnZvaWQgYnVpbGRfKGludCBzcywgaW50IHNlLCBpbnQgc2kpCnsKICAgICBpZiAoc3MgPT0gc2UpCiAgICAgewogICAgICAgICBzdFtzaV0gPSBjb3VudGVyW2Fycltzc11dOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGludCBtaWQgPSBnZXRNaWQoc3MsIHNlKTsKICAgICBpbnQgbCA9IHNpKjIrMTsKICAgICBpbnQgciA9IHNpKjIrMjsKICAgICBidWlsZF8oc3MsIG1pZCwgbCk7CiAgICAgYnVpbGRfKG1pZCsxLCBzZSwgcik7CiAgICAgc3Rbc2ldID0gbWF4KHN0W2xdLCBzdFtyXSk7Cn0KCmludCBtYWluKCkKewogICAgd2hpbGUgKHNjYW5mKCIlZCIsICZuKSkKICAgIHsKICAgICAgICBpZiAobiA9PSAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICBzY2FuZigiJWQiLCAmcSk7CiAgICAgICAgbWVtc2V0KHN0LCAwLCBzaXplb2Yoc3QpKTsKICAgICAgICBtZW1zZXQoY291bnRlciwgMCwgc2l6ZW9mKGNvdW50ZXIpKTsKICAgICAgICBtZW1zZXQoc3RhcnQsIDAsIHNpemVvZihzdGFydCkpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpPCBuOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBzY2FuZigiJWQiLCAmYXJyW2ldKTsKICAgICAgICAgICAgY291bnRlclthcnJbaV1dKys7CiAgICAgICAgfQogICAgICAgIGludCB5ID0gbXgsIGsgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpPCBuOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAoeSAhPSBhcnJbaV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGsgPSBpOwogICAgICAgICAgICAgICAgeSA9IGFycltpXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdGFydFtpXSA9IGs7CiAgICAgICAgfQogICAgICAgIGJ1aWxkXygwLCBuLTEsIDApOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGFucyA9IDAsIGsgPSAwLCBmID0gMCwgc2MgPSAwLCB0aCA9IDA7CiAgICAgICAgICAgIGludCBxcywgcWU7CiAgICAgICAgICAgIHNjYW5mKCIlZCAlZCIsICZxcywgJnFlKTsKICAgICAgICAgICAgcXMtLTsKICAgICAgICAgICAgcWUtLTsKICAgICAgICAgICAgaWYgKGFycltxc10gIT0gYXJyW3FlXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgayA9IHN0YXJ0W3FzXSArIGNvdW50ZXJbYXJyW3FzXV07CiAgICAgICAgICAgICAgICBmID0gayAtIHFzOwogICAgICAgICAgICAgICAgc2MgPSBxZSAtIHN0YXJ0W3FlXSArIDE7CiAgICAgICAgICAgICAgICBhbnMgPSBtYXgoZiwgc2MpOwogICAgICAgICAgICAgICAgaWYgKGsgPD0gc3RhcnRbcWVdIC0gMSl7CiAgICAgICAgICAgICAgICAgICAgdGggPSBnZXRPY2MoMCwgbi0xLCBrLCBzdGFydFtxZV0gLSAxLCAwKTsKICAgICAgICAgICAgICAgICAgICBhbnMgPSBtYXgoYW5zLCB0aCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwcmludGYoIiVkXG4iLCBhbnMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRmKCIlZFxuIiwgcWUgLSBxcyArIDEpOwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgIH0KfQo=