#include<bits/stdc++.h>
using namespace std;
int n,m,ansxh;
string anszy;
struct little_people{
int cx;
string zy;
} as[1000005];
int main() {
// freopen("P1563.in","r",stdin); freopen("P1563.out","w",stdout);
cin>>n>>m;
for (int i=1;i<=n;++i)
cin>>as[i].cx>>as[i].zy;
ansxh=1; anszy=as[1].zy;
while (m--){
int lr,gs;
cin>>lr>>gs;
gs%=n;
if (lr == 1) { //to right
if (as[ansxh].cx == 0){ //little_people inside
// for (int i=1;i<=gs;++i){
// if (ansxh == n)
// ansxh=1;
// else
// ansxh++;
// }
if (gs > n-ansxh)
ansxh=gs-n+ansxh;
else if (gs <= n-ansxh)
ansxh+=gs;
anszy=as[ansxh].zy;
// cout<<anszy<<endl;
}
else if (as[ansxh].cx == 1){ //little_people outside
// for (int i=1;i<=gs;++i){
// if (ansxh == 1)
// ansxh=n;
// else
// ansxh--;
// }
if (gs > ansxh)
ansxh=n-gs+ansxh;
else if (gs <= ansxh)
ansxh-=gs;
anszy=as[ansxh].zy;
// cout<<anszy<<endl;
}
}
else if (lr == 0){ //to left
if (as[ansxh].cx == 0){ //little_people inside
// for (int i=1;i<=gs;++i){
// if (ansxh == 1)
// ansxh=n;
// else
// ansxh--;
// }
if (gs > ansxh)
ansxh=n-gs+ansxh;
else if (gs <= ansxh)
ansxh-=gs;
anszy=as[ansxh].zy;
// cout<<anszy<<endl;
}
else if (as[ansxh].cx == 1){ //little_people outside
// for (int i=1;i<=gs;++i){
// if (ansxh == n)
// ansxh=1;
// else
// ansxh++;
// }
if (gs > n-ansxh)
ansxh=gs-n+ansxh;
else if (gs <= n-ansxh)
ansxh+=gs;
anszy=as[ansxh].zy;
// cout<<anszy<<endl;
}
}
}
cout<<anszy;
return 0;
}