#include<stdio.h>
#include<vector>
using namespace std;

int n,q,a[200001];
vector<int> v[200001];
int p,k,r,j;

int AND(int p,int k){
    if(p==k) return a[p]&a[k];
    else return a[k]&AND(p,k-1);
}

int main(){

    scanf("%d%d",&n,&q);

    for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
           /* v[i].push_back(a[i]);
            for(int j=1;j<i;j++)v[i].push_back(v[i][j-1]&a[i-j]);*/
    }
    for(int i=0;i<q;i++){
        scanf("%d%d",&p,&k);
        if(p==k)printf("%d",a[p]);
        else{
            r=AND(p,k);
            printf("%d\n",r);
        }
    }

    return 0;
}