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

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

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

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];*/
        printf("%d\n",AND(p,k));
    }

    return 0;
}