#include using namespace std; const int INF=1e9; using pii=pair; using tii=tuple; #define rep(i,n) for (int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() template void chmin(T &a,T b){ if(a>b){ a=b; } } template void chmax(T &a,T b){ if(a h,p,x; void input_cin(){ cin >> n; if(n==-1) exit(0); h.assign(n,0); p.assign(n,0); x.assign(n,0); rep(i,n) cin >> h[i] >> p[i] >> x[i]; } }Input; struct shooter{ int i; int j; int l; int s; }; struct enemy{ int i; int fh; int h; int p; }; struct state{ int turn; double point; vector> q_enemy; shooter me; string root; }; bool operator<(const state &a,const state &b){ return (double)a.point*(double)a.me.l<(double)b.point*(double)b.me.l; } struct solver{ string beam_search(int now_turn,state first_state,int depth,int width){ vector now_beam,next_beam; now_beam.push_back(first_state); rep(d,depth){ rep(w,width){ if((int)now_beam.size()<=w) break; rep(m,3){ state new_state=now_beam[w]; if(m==0){ new_state.root.push_back('S'); } if(m==1){ new_state.me.j--; if(new_state.me.j<0) new_state.me.j+=W; new_state.root.push_back('L'); } if(m==2){ new_state.me.j++; if(W<=new_state.me.j) new_state.me.j-=W; new_state.root.push_back('R'); } if(!new_state.q_enemy[new_state.me.j].empty()&&new_state.me.i==new_state.q_enemy[new_state.me.j].front().i) new_state.point=-1e9; if(!new_state.q_enemy[new_state.me.j].empty()&&0> q_enemy(W); string root; rep(t,T){ me.i--; rep(j,W){ if(!q_enemy[j].empty()&&me.i