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;
}
}