#include <iostream>
#include <cmath>

using namespace std;

int ns(int a[],int l,int r){
    int max_br = a[0];
    for(int i=l; i<r; i++){
        if(a[i] > max_br){
            max_br = a[i];
        }
    }
    int stepen = 0;
    while(pow(2, stepen) <= max_br){
        stepen++;
    }
    return stepen;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int n, q;
    cin>>n>>q;
    int niz[n];
    int ispis[q];

    for(int i=0; i<n; i++){
        cin>>niz[i];
    }

    for(int k=0; k<q; k++){
        int l, r;
        cin>>l>>r;
        int max_stepen = ns(niz, l, r);

        int rez[max_stepen+1];
        int a[n];
        for(int i=0; i<n; i++){
            a[i] = niz[i];
        }

        for(int i=max_stepen; i>=0; i--){
            int brojac=0;
            for(int j=l-1; j<r; j++){
                if(a[j] / pow(2, i) >= 1){
                    brojac++;
                    a[j] -= pow(2, i);
                }
            }
            if(brojac == r-l+1){
                rez[i] = 1;
            }
            else{
                rez[i] = 0;
            }
        }

        int resenje=0;
        for(int i=max_stepen; i>=0; i--){
            if(rez[i] == 1){
                resenje += pow(2, i);
            }
        }
        ispis[k] = resenje;
    }

    for(int i=0; i<q; i++){
        cout<<ispis[i]<<endl;
    }
    return 0;
}