#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int n;
  cin >> n;
  long long int a[n + 5][n + 5];
  memset(a, 0, sizeof(a));
  for (int i = 1; i <= n; i++) {
    cin >> a[i][i];
  }
  for (int i = 1; i < n; i++) {
    for (int j = 1; j + i <= n; j++) {
      a[j][i + j] = a[j][i + j - 1] ^ a[j + 1][i + j];
    }
  }
  for (int i = 1; i < n; i++) {
    for (int j = 1; j + i <= n; j++)
      a[j][i + j] = max(a[j][i + j], max(a[j][i + j - 1], a[j + 1][i + j]));
  }
  long long int q, l, r;
  cin >> q;
  while (q--) {
    cin >> l >> r;
    cout << a[l][r] << endl;
  }
}
