import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        //消耗缓存区de换行符
        sc.nextLine();
        String cmds=sc.nextLine();
        int list_one=list(n,cmds);
        StringBuilder list_=new StringBuilder();
        for(int i=0;i<n;i++){
            if(i<4)
                list_.append(list_one+i+" ");
        }
        System.out.println(list_.toString());
        System.out.println(cursor(n,cmds));
    }
    //光标移动
    private static int cursor(int n,String cmd){
        int ori=1;
        for(char ch:cmd.toCharArray())
            if(ch=='U')
                ori--;
            else ori++;
        if(ori>=0) return ori==0?n:ori%n;
        else{
            while(ori<0){
                ori+=n;
            }
            return ori==0?n:ori;
        }
    }
    //计算当前列表
    private static int list(int n,String cmd){
        //当前列表第一位
        int list_one=1;
        //当前光标位置
        int cur_cursor=1;
        //循环处理每个命令
        for(int i=0;i<cmd.length();i++){
            //计算执行上一个命令时的光标位置
            cur_cursor=cursor(n,cmd.substring(0,i));
           //System.out.println("上一个命令时光标位置"+cur_cursor);
            if(cmd.charAt(i)=='U'){
                if(cur_cursor==1)
                    list_one=(n-3)>0?n-3:2*n-3;
                else if(cur_cursor==list_one)
                    list_one--;
            }
            if(cmd.charAt(i)=='D'){
                if(cur_cursor==n)
                    list_one=1;
                else if(cur_cursor==list_one+3)
                    list_one++;
            }
            //更新光标位置
            cur_cursor=cursor(n,cmd.substring(0,i+1));
        }
        return list_one;
    }
}