#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base ::sync_with_stdio(false);
  ;
  cin.tie(NULL);
  ;
  long long int t = 1;
  while (t--) {
    long long int n;
    cin >> n;
    long long int a[n + 1];
    long long int i, j, k;
    for (i = 1; i <= n; i++) cin >> a[i];
    long long int dp[n + 1][n + 1];
    memset(dp, 0, sizeof(dp));
    k = 0;
    for (i = 1; i <= n; i++) dp[i][i] = a[i];
    for (i = 1; i <= n - 1; i++) {
      for (j = 1; j <= n - i; j++) {
        long long int x, y;
        x = j;
        y = j + i;
        dp[x][y] = dp[x + 1][y] ^ dp[x][y - 1];
      }
    }
    for (i = 1; i <= n - 1; i++) {
      for (j = 1; j <= n - i; j++) {
        long long int x = j;
        long long int y = j + i;
        dp[x][y] = max({dp[x][y], dp[x + 1][y], dp[x][y - 1]});
      }
    }
    long long int m;
    cin >> m;
    while (m--) {
      long long int x, y;
      cin >> x >> y;
      cout << dp[x][y] << "\n";
    }
  }
}
