#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 j; int l; int s; }; struct enemy{ int fh; int h; int p; }; struct state{ int turn; int point; vector> grid; shooter me; string root; }; bool operator<(const state &a,const state &b){ return (double)a.point/(double)a.turn<(double)b.point/(double)b.turn; } struct solver{ string beam_search(state first_state,int width,int depth){ priority_queue now_beam,copy_now_beam; now_beam.push(first_state); rep(d,depth){ copy_now_beam=now_beam; priority_queue next_beam; rep(w,width){ if(now_beam.empty()) break; state now_state=now_beam.top(); now_beam.pop(); rep(i,H){ rep(j,W){ if(0> dp(n+1,vector(z+1,{-1,-1})); dp[0][0]={-2,-2}; rep(ii,n){ rep(jj,z+1){ if(dp[ii][jj]==pair({-1,-1})) continue; if(now_state.me.j({-1,-1})){ tx=ii; pa={ii,z}; break; } } if(tx==-1||0({0,0})){ pii new_pa=dp[pa.first][pa.second]; if(new_pa.second!=pa.second){ if(new_state.me.j> grid(H,vector(W,{0,0,0})); string root; rep(t,1000){ for(int i=H-2;0<=i;i--){ rep(j,W){ grid[i+1][j]=grid[i][j]; grid[i][j]={0,0,0}; } } Input.input_cin(); rep(i,Input.n){ grid[0][Input.x[i]].fh=Input.h[i]; grid[0][Input.x[i]].h=Input.h[i]; grid[0][Input.x[i]].p=Input.p[i]; } state first_state={0,0,grid,me,""}; root=beam_search(first_state,2,2); reverse(all(root)); if(root.empty()){ cout << "S" << endl; }else{ cout << root.back() << endl; if(root.back()=='L') me.j--; if(root.back()=='R') me.j++; root.pop_back(); } for(int i=H-2;0<=i;i--){ if(0> p; } Solver.solve(); }