const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
// 不是很复杂,但是本题的关键在于处理时间复杂度,直接使用原生API会导致时间超时,需要用指针方式替换,将时间复杂度降到 O(1)
void (async function () {
// Write your code here
let params = [];
while ((line = await readline())) {
let tokens = line.split(" ");
// let a = parseInt(tokens[0]);
// let b = parseInt(tokens[1]);
// console.log(a + b);
params.push(tokens);
}
// console.log(params)
let [n, k] = params[0];
let str_arr = params[1][0].split("");
let left = [];
let right = [];
// let pos = str_arr.findIndex((v) => v == "I");
// for (let i = 0; i < pos; i++) {
// left.push(str_arr[i]);
// }
// for (let j = pos + 1; j < str_arr.length; j++) {
// right.push(str_arr[j]);
// }
let i = 0;
for (i = 0; i < str_arr.length; i++) {
if (str_arr[i] != "I") {
left.push(str_arr[i]);
} else {
break;
}
}
for (let j = i + 1; j < str_arr.length; j++) {
right.push(str_arr[j]);
}
// 使用指针而不是result 操作
let left_pointer = left.length;
let right_pointer = 0;
// console.log(left, right);
for (let i = 0; i < k; i++) {
// console.log(params[i+2][0])
let oper = params[i + 2][0];
if (oper == "backspace") {
if (
left_pointer > 0 &&
left[left_pointer - 1] == "(" &&
right_pointer < right.length &&
right[right_pointer] == ")"
) {
// right.shift();
left_pointer--;
right_pointer++
} else if (left_pointer > 0) {
// left.pop();
left_pointer--
}
} else if (oper == "delete") {
if (right_pointer<right.length) {
// console.log('delete right')
// right.shift();
right_pointer++
}
}
}
console.log([...left.slice(0,left_pointer),'I',...right.slice(right_pointer)].join(""));
})();