# Tips:函数内部使用外部的变量需要global声明
#定义两个列表,一个表示所有歌曲,一个表示显示歌曲,定义一个光标变量
#你给我翻译翻译:什么***叫***翻页
#翻页就是更新显示列表
#你再给我翻译翻译:什么***叫***挪动光标
#挪动光标就是更新光标变量
n=int(input())
allsong=[i for i in range(1,n+1)]#所有歌曲
if n<=4:
window=allsong
else:
window=[1,2,3,4]#窗口显示歌曲
choose=1#当前选中歌曲
def fanye(i):#翻页+移动光标
global window,allsong,choose
if window==[1,2,3,4] and choose==1 and i=="U":
window=allsong[-4:]
choose=allsong[-1]
elif window==allsong[-4:] and choose==allsong[-1] and i=="D":
window=[1,2,3,4]
choose=1
else:
if i=="U" and choose==window[0]:
for j in range(len(window)):
window[j]-=1
choose=window[0]
elif i=="D" and choose==window[-1]:
for j in range(len(window)):
window[j]+=1
choose=window[-1]
def move(i):#只移动光标
global window,allsong,choose
if i=="U":
choose-=1
elif i=="D":
choose+=1
cmd=input()
if len(allsong)<=4:
for i in cmd:
move(i)
choose=(choose+len(window))%len(window)#处理溢出
#注意:只移动光标包含两种情况:
#1、光标在中间2、窗口宽度大于等于所有歌曲
#第一种情况光标不会有头尾跨越问题,但第二种会有
#所以需要写这行代码处理溢出
else:
for i in cmd:
p1=(choose==window[0] and i=="U")
p2=(choose==window[-1] and i=="D")
if p1 or p2:
fanye(i)
else:
move(i)
for i in window:
print(i,end=" ")
print()
print(choose)