#include using namespace std; int n, m; const int N = 1e5 + 10; struct Node { int dir; //方向,0:圈内,1:圈外 char name[120]; //姓名 } c[N]; int main() { //读入数据 scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) scanf("%d%s", &c[i].dir, c[i].name); //出发点 int i = 0; while (m--) { // a==0 ,表示向左数 s 个人 // a==1 ,表示向右数 s 个人 int a, s; scanf("%d%d", &a, &s); if (a == 0 && c[i].dir == 0) //圈内 i = (i - s + n) % n; //向前找 else if (a == 0 && c[i].dir == 1) //圈内 i = (i + s) % n; //向后找 else if (a == 1 && c[i].dir == 0) //圈外 i = (i + s) % n; //向后找 else if (a == 1 && c[i].dir == 1) //圈外 i = (i - s + n) % n; //向前找 } printf("%s\n", c[i].name); return 0; }