#include <iostream>
#include <vector>
using namespace std;
int niz1[20];
    vector <int> mat[20];
int main()
{

    int o,l,r,j,i,a,b,k=0,c,d,niz[200000];
    long long re;
    cin>>a>>b;
    for(i=0;i<a;i++)
    {
        cin>>niz[i];

        for(j=1;j<1000000;j=j*2)
        {
            mat[i].push_back((niz[i]/j)%2);
cout<<(niz[i]/j)%2;
        }

    }
    for(i=0;i<b;i++)
    {re=0;
        cin>>l>>r;
        for(j=l;j<r;j++)
        {

            for(o=0;o<20;o++)
            {
             if(j==l)
             {if(k<=o)
                 niz1[o]=mat[j][o];
cout<<niz1[o];
             }
             else
             {if(k<=o)
                 if(niz1[o]==1 && mat[j][o]==1){}
                 else{
                    niz1[o]=0;
                 }

             }

            }

        }
        k=1;
      for(j=0;j<20;j++)
      {
          re=re+niz1[j]*k;
          k=k*2;
      }
      cout<<re;
    }
    cout << "Hello world!" << endl;
    return 0;
}