#include<bits/stdc++.h>#include<tr1/unordered_map>#definereregisterusingnamespace std;constint N=4e4+5;
tr1::unordered_map<int,int>lsr;inlineintred(){int data=0;bool w=0;char ch=getchar();while(ch!='-'&&(ch<'0'|| ch>'9')) ch=getchar();if(ch=='-') w=1,ch=getchar();while(ch>='0'&& ch<='9') data=(data<<3)+(data<<1)+ch-'0',ch=getchar();return w?-data:data;}int n,m,a[N],b[N],c,tot=0,l,r,las=0,mx,id,L=1,R=0;int cnt[205][N],col[N],f[205][205];int num[N];inlinevoidcheck(constint&val){int tot=num[val]+cnt[R][val]-cnt[L-1][val];if(tot>mx||(mx==tot&&val<id))id=val,mx=tot;}inlinevoidget(int l,int r){for(int re i=l;i<=r;++i)++num[a[i]],check(a[i]);}inlinevoidDel(int l,int r){for(int re i=l;i<=r;++i)--num[a[i]];}intmain(){n=red();m=red();int S=sqrt(n);for(int re i=1;i<=n;i++)b[i]=a[i]=red(),col[i]=(i-1)/S+1;sort(b+1,b+n+1);tot=unique(b+1,b+n+1)-b-1;for(int re i=1;i<=tot;i++)lsr[b[i]]=i;for(int re i=1;i<=n;i++)a[i]=lsr[a[i]];for(int re i=1;i<=col[n];i++)for(int re j=1;col[j]<=i&&j<=n;++j)++cnt[i][a[j]];for(int re i=1;i<=col[n];i++){int now=(i-1)*S;mx=-1,id=1e9;memset(num,0,sizeof(int)*(tot+1));for(int re j=i;j<=col[n];++j){while(col[++now]==j&&now<=n)++num[a[now]],check(a[now]);f[i][j]=id;--now;}}memset(num,0,sizeof(num));while(m--){l=(red()+las-1)%n+1,r=(red()+las-1)%n+1;if(r<l)r^=l^=r^=l;mx=-1,id=1e9,L=col[l]+1,R=col[r]-1;if(L>R)L=R+1;get(l,min(r,col[l]*S));if(col[l]^col[r]){get((col[r]-1)*S+1,r);check(f[L][R]);Del((col[r]-1)*S+1,r);}cout<<(las=b[id])<<"\n";Del(l,min(r,col[l]*S));}return0;}