import java.util.*;

class Solution {
    
    public String solution(int[] numbers, String hand) {
        Map<String, Number> map = new HashMap<>();
        map.put("1", new Number(new Integer[]{0,0},1));
        map.put("2", new Number(new Integer[]{0,1},2));
        map.put("3", new Number(new Integer[]{0,2},3));
        map.put("4", new Number(new Integer[]{1,0},4));
        map.put("5", new Number(new Integer[]{1,1},5));
        map.put("6", new Number(new Integer[]{1,2},6));
        map.put("7", new Number(new Integer[]{2,0},7));
        map.put("8", new Number(new Integer[]{2,1},8));
        map.put("9", new Number(new Integer[]{2,2},9));
        map.put("0", new Number(new Integer[]{3,1},0));
        map.put("*", new Number(new Integer[]{3,0},-1));
        map.put("#", new Number(new Integer[]{3,2},-1));
        
        Number leftHandNumber = map.get("*");
        Number rightHandNumber = map.get("#");
        StringBuilder sb = new StringBuilder();
        for(int choiceNumber : numbers){
            if(choiceNumber == 1 || choiceNumber == 4 || choiceNumber == 7){
                leftHandNumber = map.get(String.valueOf(choiceNumber));
                sb.append("L");
            }
            else if(choiceNumber == 3 || choiceNumber == 6 || choiceNumber == 9){
                rightHandNumber = map.get(String.valueOf(choiceNumber));
                sb.append("R");
            }
            else{
                Integer[] stdLocation = map.get(String.valueOf(choiceNumber)).location;
                Integer[] leftLocation = leftHandNumber.location;
                Integer[] rightLocation = rightHandNumber.location;
                
                int l = Math.abs(stdLocation[0]-leftLocation[0]) + Math.abs(stdLocation[1]-leftLocation[1]);
                int r = Math.abs(stdLocation[0]-rightLocation[0]) + Math.abs(stdLocation[1]-rightLocation[1]);
                if(l==r){
                    if(hand.equals("left")){
                        leftHandNumber = map.get(String.valueOf(choiceNumber));
                        sb.append("L");
                    }else{
                        rightHandNumber = map.get(String.valueOf(choiceNumber));
                        sb.append("R");
                    }
                }else{
                    if(l<r){
                        leftHandNumber = map.get(String.valueOf(choiceNumber));
                        sb.append("L");
                    }else{
                        rightHandNumber = map.get(String.valueOf(choiceNumber));
                        sb.append("R");
                    }
                }
            }
        }
        return sb.toString();
    }
    
    class Number{
        Integer[] location;
        int value;
        
        Number(  Integer[] l,int v){
            this.location = l;
            this.value = v;
        }
    }
}