#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.turn+1)*a.me.l<(double)b.point/(double)(b.turn+1)*b.me.l; } struct solver{ string beam_search(int now_turn,state first_state,int width,int depth){ priority_queue now_beam; now_beam.push(first_state); rep(d,depth){ priority_queue next_beam; rep(w,width){ if(now_beam.empty()) break; state now_state=now_beam.top(); now_beam.pop(); rep(m,3){ state new_state=now_state; 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