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

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

void AND(int p,int k){
    if(p<k){
        r=r&a[p];
        AND(p+1,k);
    }
}

int main(){

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

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

    return 0;
}