#include<bits\stdc++.h>usingnamespace std;constint N =5001;int f[N][N];int dp[N][N];intmain(){int n, q, l, r;
cin >> n;for(int i =1; i <= n ; i++){
cin >> f[i][i];
dp[i][i]= f[i][i];}for(int len =2; len <= n ; len++){for(int l =1, r = len ; r <= n ; l++, r++){
f[l][r]= f[l+1][r]^f[l][r-1];
dp[l][r]=max(f[l][r],max(dp[l+1][r], dp[l][r-1]));}}for(cin >> q ; q >0; q--){
cin >> l >> r;
cout << dp[l][r]<< endl;}return0;}