#include<bits/stdc++.h>
#define maxn 100000
using namespace std;
inline int read(){
char c=getchar();int num=0;bool b=0;
for(;c<'0'||c>'9';b=(c=='-'?1:0),c=getchar());
for(;c>='0'&&c<='9';num=(num<<3)+(num<<1)+(c^'0'),c=getchar());
return b?-num:num;
}
struct node{
int face;
string name;
}a[maxn];
int n,m;
int p;
inline void add(int &p){
p++;
if(p==n) p=0;
return;
}
inline void j(int &p){
p--;
if(p==-1) p=n-1;
return;
}
int main(){
n=read();
m=read();
for(int i=0;i<n;i++){
a[i].face=read();
cin>>a[i].name;
}
for(int i=0;i<m;i++){
int x,y;
x=read();
y=read();
if((x+a[p].face)%2==0) while(y--) j(p);
else while(y--) add(p);
// cout<<endl<<p<<endl;
}
cout<<a[p].name;
return 0;
}