#include<bits/stdc++.h>
using namespace std;
const int N = 220;
int n,m;
int i;
map<string,int> p1;
map<int,string> p2;
int main(){
cin>>n>>m;
for(i=0;i<n;i++){
string s;
int x;
cin>>x>>s;
p1[s]=x;
p2[i]=s;
}
i=0;
/*
for(i=1;i<=n;i++){
string s;
int x;
cin>>x>>s;
p1[s]=x;
p2[i]=s;
}
i=1;
*/
//如果把上面的输入改成从1开始遍历就有两个 测试点一直过不去。。。
while(m--){
int a,b;
cin>>a>>b;
if(p1[p2[i]]==0){
if(a==0){
i=(i+(n-b))%n;
}else if(a==1){
i=(i+b+n)%n;
}
}else if(p1[p2[i]]==1){
if(a==0){
i=(i+b+n)%n;
}else if(a==1){
i=(i+(n-b))%n;
}
}
}
cout<<p2[i]<<endl;
return 0;
}