import java.io.*;
import java.util.Stack;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Character> orgStack = new Stack<>();
Stack<Character> editStack = new Stack<>();
StringBuilder sb = new StringBuilder();
//문자열과 커맨드 수를 입력받는다
String orgString = reader.readLine();
int nb = Integer.parseInt(reader.readLine());
//문자를 하나씩 stack에 담는다
for(int i=0; i<orgString.length(); i++) {
orgStack.push(orgString.charAt(i));
}
for(int i=0; i<nb ; i++) {
String cmd = reader.readLine();
//맨 앞일 경우 skip
if(!orgStack.isEmpty()) {
//L COMMAND
if(cmd.equals("L")) {
editStack.push(orgStack.peek());
orgStack.pop();
}
//B COMMAND
if(cmd.equals("B")) {
orgStack.pop();
}
}
//맨 뒤일 경우 skip
if(!editStack.isEmpty()) {
//D COMMAND
if(cmd.equals("D")) {
orgStack.push(editStack.peek());
editStack.pop();
}
}
//P * COMMAND
if(cmd.startsWith("P")) {
Character addChar = cmd.charAt(cmd.length()-1);
orgStack.push(addChar);
}
}
while(!orgStack.isEmpty()) {
editStack.push(orgStack.peek());
orgStack.pop();
}
while(!editStack.isEmpty()) {
sb.append(editStack.peek());
editStack.pop();
}
writer.write(sb.toString());
reader.close();
writer.flush();
writer.close();
}
}