#include <stdio.h>

/*
处理命令一共有四种情况
1、命令为向上,且歌曲数量>4
2、命令为向下,且歌曲数量>4
3、命令为向上,且歌曲数量<=4
4、命令为向下,且歌曲数量<=4
*/

static int show(char c, int *screen, int *head, int *tail, int *index, int musicNum)
{
    /* 1、命令为向上,且歌曲数量>4 */
    if(c == 'U' && musicNum > 4)
    {
        /* 若光标在第一页第一首歌,则翻页,在最后一首歌,并更新屏幕 */
        if(*index == 1)
        {
            *tail = musicNum;
            *head = musicNum - 3;
            *index = musicNum;
            int temp = *tail;
            for(int i = 3; i >= 0; i--)
            {
                screen[i] = temp--;    //更新屏幕
            }
        }
        /* 若光标在第一页,而且在第一页的最后一首歌,则屏幕下移 */
        else if(*index == *head)
        {
            (*head)--;
            (*index)--;
            (*tail)--;
            int temp = *head;
            for(int i = 0; i <= 3; i++)
            {
                screen[i] = temp++;    //更新屏幕
            }
        }
        /* 不是第一行,光标下移即可 */
        else
        {
            (*index)--;
        }
    }
    else if(c == 'D' && musicNum > 4)
    {
        /* 若光标在最后一页最后一首歌,则翻页,在第一页第一首歌,并更新屏幕 */
        if(*index == musicNum)
        {
            *head = 1;
            *tail = 4;
            *index = 1;
            int temp = *head;
            for(int i = 0; i <= 3; i++)
            {
                screen[i] = temp++;
            }
        }
        /* 若光标在最后一页,不是最后一首歌,则屏幕上移 */
        else if(*index == *tail)
        {
            (*head)++;
            (*index)++;
            (*tail)++;
            int temp = *head;
            for(int i = 0; i <= 3; i++)
            {
                screen[i] = temp++;
            }
        }
        /* 不是第一行,光标上移即可 */
        else
        {
            (*index)++;
        }
    }
    else if(c == 'U' && musicNum <= 4)
    {
        /* 是第一行,光标移到最后一行 */
        if(*index == 1)
        {
            *index = musicNum;
        }
        /* 不是第一行,光标上移 */
        else
        {
            (*index)--;
        }
    }
    else if(c == 'D' && musicNum <= 4)
    {
        /* 是第一行,光标移到第一行 */
        if(*index == musicNum)
        {
            *index = 1;
        }
        /* 不是第一行,光标下移 */
        else
        {
            (*index)++;
        }
    }
    else
    {
        printf("input failed!!!\n");
        return -1;
    }
    return 0;
}

int main()
{
    int musicNum = 0;
    scanf("%d", &musicNum);
    int m = musicNum >= 4 ? 4 : musicNum;
    int screen[m];
    memset(screen, 0, m*sizeof(int));
    
    /* 屏幕数据初始化 */
    for(int i = 0; i < m; i++)
    {
        screen[i] = i+1;
        //printf("screen[%d] = [%d]\n", i, screen[i]);
    }
    /* 初始化第一行显示的歌曲,最后一行显示的歌曲和光标所在的位置 */
    int head = screen[0];
    int tail = screen[m-1];
    int index = screen[0];
    
    /* 获取并处理命令 */
    char c;
    while(scanf("%c", &c) != EOF)
    {
        if(c == 'U' || c == 'D')
        {
            show(c, screen, &head, &tail, &index, musicNum);
        }
    }
    
    for(int i = 0; i < m; i++)
    {
        printf("%d ", screen[i]);
    }
    printf("\n");
    printf("%d\n", index);
    return 0;
}