#1406 : 에디터
import sys
input = sys.stdin.readline
stack1 = list(input().strip()) #커서기준 왼쪽
stack2=[] #커서기준 오른쪽
n = int(input())
for i in range(n):
choice = input().split()
if choice[0]=='L' and stack1 != []: #왼쪽엔 아무것도 없지 않을때
stack2.append(stack1.pop())
elif choice[0]=='D' and stack2 != []: #오른쪽엔 아무것도 없지 않을때
stack1.append(stack2.pop())
elif choice[0]=='P':
stack1.append(choice[1])
elif choice[0]=='B' and stack1!= []:
stack1.pop()
print("".join(stack1+list(reversed(stack2))))
#join을 통해 list -> strings change
처음에는 리스트로 접근해서 그냥 빼주고 어쩌고,, 해서 시간초과가 떴다
그래서 생각의 방식을 바꿔서 접근했다.
커서를 기존에는 정의하여서 그 인덱스값에 접근하였지만
스택 2개를 사용함으로서 커서를 별도로 지정해주지 않아도 되게 된다.
그 이유는 왼쪽 스택은 커서의 왼쪽 오른쪽 스택은 커서의 오른쪽이라고 생각하면 되기때문이다.
그렇게 스택 왼/오 를 만들어서 진행해 나가는 코드이다.