#include<bits/stdc++.h>
using namespace std;
#define ll long long int

const ll N = 2e5 + 5, M = 18, K = 10001, OO = 2e18l, L = 18, MOD = 1e9 + 7, sumD = 6638449, inv = 500000004;

void solve() {
    int n, q, l, r;
    cin >> n;
    vector<int> v(n), ind(n);
    vector<vector<int>> pref(n), suff(n);
    for (int i = 0; i < n; i++) cin >> v[i];
    for (int i = 0, cnt = 0; i < n; i++) {
        int x = 0;
        ind[i] = cnt;
        pref[i].reserve(n - i);
        for (int j = i; j < n; j++) {
            cnt++;
            x ^= v[j];
            pref[i].push_back(x);
        }
        for (int j = 1; j < n - i; j++)
            pref[i][j] = max(pref[i][j], pref[i][j - 1]);
    }
    for (int i = 0; i < n; i++) {
        suff[i].reserve(i + 1);
        for (int j = i; j >= 0; j--)
            suff[i].push_back(pref[j][i - j]);
        for (int j = 1; j < i + 1; j++)
            suff[i][j] = max(suff[i][j], suff[i][j - 1]);
    }
    cin >> q;
    while (q--) {
        cin >> l >> r;
        --l, --r;
        cout << suff[r][r - l] << "\n";
    }
}

signed main() {
    ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
    ll t = 1;
//    cin >> t;
    while (t--) { solve(); cout << "\n";}

}