#include using namespace std; #define FOR(i, a, b) for (int i = (int)(a); i < (int)(b); ++i) #define REP(i, n) FOR(i, 0, n) #define TRACE(x) cerr << #x << " = " << x << endl #define _ << " _ " << #define LT < #define GT > #define pb push_back #define x first #define y second typedef long long ll; typedef long double lf; void pass(){ puts ("pass"); fflush(stdout); } int t,b,r,l; void upd(){ char c[10]; int x; scanf ("%s",c); if (c[0]=='y') exit(0); scanf ("%d",&x); if (c[0]=='t') t-=x; if (c[0]=='b') b-=x; if (c[0]=='r') r-=x; if (c[0]=='l') l-=x; } int R,c,k; void sayl(int x){ printf ("left %d\n",x); l-=x; fflush(stdout); } void sayr(int x){ printf ("right %d\n",x); r-=x; fflush(stdout); } void sayt(int x){ printf ("top %d\n",x); t-=x; fflush(stdout); } void sayb(int x){ printf ("bottom %d\n",x); b-=x; fflush(stdout); } int main(void) { scanf ("%d%d%d",&R,&c,&k); int minx=(int)1e6; int miny=(int)1e6; int maxx=0; int maxy=0; REP(i,k){ int a,b; scanf ("%d%d",&a,&b); minx=min(minx,a); miny=min(miny,b); maxx=max(maxx,a); maxy=max(maxy,b); } l=miny-1; r=c-maxy; t=minx-1; b=R-maxx; if ((l^r^t^b)==0){ pass(); upd(); } while(true){ // printf ("%d %d %d %d ?\n",l,r,t,b); int x=(l^r^t^b); if ((l^x) LT l){ sayl(l-(l^x)); upd(); continue; } if ((t^x) LT t){ sayt(t-(t^x)); upd(); continue; } if ((r^x) LT r){ sayr(r-(r^x)); upd(); continue; } if ((b^x) LT b){ sayb(b-(b^x)); upd(); continue; } } return 0; } //2 4 3 0 //2 6 1 0