#include<bits/stdc++.h>
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
#define int long long
using namespace std;
int n,p,k[10005],at[10005],fix[10005],z,l[10005],r[10005];
signed main(void){
exoworldgd;
cin>>n>>p;
for(int i=0;i<p;i++)cin>>k[i];
for(int i=0,len=0;i<p;i++,at[i]=len,at[i+1]=len+=k[i])for(int j=at[i];j<at[i+1];j++)cin>>l[j]>>r[j];
for(int b=30;b+1;b--){
int s=1ll<<b,ok=1;
for(int i=0;i<p;i++){
if(fix[i])continue;
int c=0;
for(int j=at[i];j<at[i+1];j++)c+=(s<=r[j]);
if(!c)ok=0;
}
for(int i=0;i<p;i++){
int t=0,sa=0;
for(int j=at[i];j<at[i+1];j++)sa+=r[j]>=s,t+=r[j]>=s&&l[j]<s;
if(t&&(!ok||sa>1)){fix[i]=1;continue;}
for(int j=at[i];j<at[i+1];j++)if(r[j]>=s)r[j]-=s,l[j]-=s;
}
if(ok)z|=s;
}
cout<<z;
}