import numpy as np
board = [".....", ".d.i.", "kmegk", "..tu."] #eval(input())
cmds = "LRRLLUDRRLRLRRURRRRLLLRULDUDULDLLRDULURULUDLDLUDDL" #eval(input())
m = len(board)
n = len(board[0])
cmds = [a for a, b in zip(cmds, cmds[1:]) if (a in 'LR') != (b in 'LR')] + [cmds[-1]]
for cmd in cmds[:2]:
if cmd in 'DU':
board = [''.join(row) for row in zip(*board)]
if cmd in 'RD':
board = [row[::-1] for row in board]
board = [row.replace('.', '').ljust(n, '.') for row in board]
if cmd in 'RD':
board = [row[::-1] for row in board]
if cmd in 'DU':
board = [''.join(row) for row in zip(*board)]
if len(cmds) <= 2:
print(board)
exit()
board = [row.replace('.', '') for row in board]
lr, ud = 'LU'
if 'R' in cmds[:2]:
board = [row[::-1] for row in board]
lr = 'R'
if 'D' in cmds[:2]:
board = board[::-1]
ud = 'D'
board = [list(row.ljust(n, '.')) for row in board]
board = np.array(board)
lrw = board != '.'
lrr = np.fliplr(board) != '.'
udw = board.T != '.'
udr = np.fliplr(board.T) != '.'
for i,cmd in enumerate(cmds[2:]):
if cmd in 'LR':
if cmd != lr:
board[lrw] = np.fliplr(board)[lrr]
lr = cmd
else:
if cmd != ud:
board.T[udw] = np.fliplr(board.T)[udr]
ud = cmd
board = [''.join(row) for row in board]
if lr == 'R':
board = [row[::-1] for row in board]
if ud == 'D':
board = board[::-1]
print(board)
aW1wb3J0IG51bXB5IGFzIG5wCmJvYXJkID0gWyIuLi4uLiIsICIuZC5pLiIsICJrbWVnayIsICIuLnR1LiJdICNldmFsKGlucHV0KCkpCmNtZHMgPSAiTFJSTExVRFJSTFJMUlJVUlJSUkxMTFJVTERVRFVMRExMUkRVTFVSVUxVRExETFVEREwiICNldmFsKGlucHV0KCkpCm0gPSBsZW4oYm9hcmQpCm4gPSBsZW4oYm9hcmRbMF0pCmNtZHMgPSBbYSBmb3IgYSwgYiBpbiB6aXAoY21kcywgY21kc1sxOl0pIGlmIChhIGluICdMUicpICE9IChiIGluICdMUicpXSArIFtjbWRzWy0xXV0KZm9yIGNtZCBpbiBjbWRzWzoyXToKICAgIGlmIGNtZCBpbiAnRFUnOgogICAgICAgIGJvYXJkID0gWycnLmpvaW4ocm93KSBmb3Igcm93IGluIHppcCgqYm9hcmQpXQogICAgaWYgY21kIGluICdSRCc6CiAgICAgICAgYm9hcmQgPSBbcm93Wzo6LTFdIGZvciByb3cgaW4gYm9hcmRdCiAgICBib2FyZCA9IFtyb3cucmVwbGFjZSgnLicsICcnKS5sanVzdChuLCAnLicpIGZvciByb3cgaW4gYm9hcmRdCiAgICBpZiBjbWQgaW4gJ1JEJzoKICAgICAgICBib2FyZCA9IFtyb3dbOjotMV0gZm9yIHJvdyBpbiBib2FyZF0KICAgIGlmIGNtZCBpbiAnRFUnOgogICAgICAgIGJvYXJkID0gWycnLmpvaW4ocm93KSBmb3Igcm93IGluIHppcCgqYm9hcmQpXQppZiBsZW4oY21kcykgPD0gMjoKICAgIHByaW50KGJvYXJkKQogICAgZXhpdCgpCmJvYXJkID0gW3Jvdy5yZXBsYWNlKCcuJywgJycpIGZvciByb3cgaW4gYm9hcmRdCmxyLCB1ZCA9ICdMVScKaWYgJ1InIGluIGNtZHNbOjJdOgogICAgYm9hcmQgPSBbcm93Wzo6LTFdIGZvciByb3cgaW4gYm9hcmRdCiAgICBsciA9ICdSJwppZiAnRCcgaW4gY21kc1s6Ml06CiAgICBib2FyZCA9IGJvYXJkWzo6LTFdCiAgICB1ZCA9ICdEJwpib2FyZCA9IFtsaXN0KHJvdy5sanVzdChuLCAnLicpKSBmb3Igcm93IGluIGJvYXJkXQpib2FyZCA9IG5wLmFycmF5KGJvYXJkKQpscncgPSBib2FyZCAhPSAnLicKbHJyID0gbnAuZmxpcGxyKGJvYXJkKSAhPSAnLicKdWR3ID0gYm9hcmQuVCAhPSAnLicKdWRyID0gbnAuZmxpcGxyKGJvYXJkLlQpICE9ICcuJwpmb3IgaSxjbWQgaW4gZW51bWVyYXRlKGNtZHNbMjpdKToKICAgIGlmIGNtZCBpbiAnTFInOgogICAgICAgIGlmIGNtZCAhPSBscjoKICAgICAgICAgICAgYm9hcmRbbHJ3XSA9IG5wLmZsaXBscihib2FyZClbbHJyXQogICAgICAgICAgICBsciA9IGNtZAogICAgZWxzZToKICAgICAgICBpZiBjbWQgIT0gdWQ6CiAgICAgICAgICAgIGJvYXJkLlRbdWR3XSA9IG5wLmZsaXBscihib2FyZC5UKVt1ZHJdCiAgICAgICAgICAgIHVkID0gY21kCmJvYXJkID0gWycnLmpvaW4ocm93KSBmb3Igcm93IGluIGJvYXJkXQppZiBsciA9PSAnUic6CiAgICBib2FyZCA9IFtyb3dbOjotMV0gZm9yIHJvdyBpbiBib2FyZF0KaWYgdWQgPT0gJ0QnOgogICAgYm9hcmQgPSBib2FyZFs6Oi0xXQpwcmludChib2FyZCk=