异或左右与内外获取方向,其余遍历即可
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,target=0;
    int num;
    string job;
    cin>>n>>m;
    vector<pair<int,string>> wanju;
    for(int i=0;i<n;i++){
        cin>>num>>job;
        wanju.push_back(pair<int,string>(num,job));
    }
    int size=wanju.size()-1;
    for(int i=0;i<m;i++){
        int ai,si;
        cin>>ai>>si;
        int dir=wanju[target].first;
        si%=(size+1);
        if(dir^ai){
            if(target+si<=size)
            target+=si;
            else{target=target+si-(size+1);}
        }
        else{if(target-si>=0)
            target-=si;
            else{target=target-si+(size+1);}}
    }
    cout<<wanju[target].second;
}