#include <bits/stdc++.h>
using namespace std;
const int MOD(1000000007);
const int INF((1 << 30) - 1);
const int MAXN(500005);
struct str {
  char c;
  int l, r, num;
  str(){};
  str(char c, int l, int r, int num) : c(c), l(l), r(r), num(num){};
} a[MAXN];
char s[MAXN], op[MAXN];
int main() {
  int n, m, p;
  scanf("%d%d%d%s%s", &n, &m, &p, s, op);
  stack<int> st;
  int num = 0;
  a[0] = str('?', 0, 1, 0);
  a[n + 1] = str('?', n - 1, n, 0);
  for (int i = 0; i < n; i++) {
    if (s[i] == '(') {
      st.push(i);
    } else {
      ++num;
      a[i + 1] = str(')', i, i + 2, num);
      a[st.top() + 1] = str('(', st.top(), st.top() + 2, num);
      st.pop();
    }
  }
  for (int i = 0; i < m; i++) {
    if (op[i] == 'L')
      p = a[p].l;
    else if (op[i] == 'R')
      p = a[p].r;
    else {
      if (a[p].c == '(') {
        num = a[p].num;
        a[a[p].l].r = a[p].r;
        a[a[p].r].l = a[p].l;
        p = a[p].r;
        while (a[p].num != num) {
          a[a[p].l].r = a[p].r;
          a[a[p].r].l = a[p].l;
          p = a[p].r;
        }
        a[a[p].l].r = a[p].r;
        a[a[p].r].l = a[p].l;
        p = a[p].r;
        if (p == n + 1) p = a[p].l;
      } else {
        num = a[p].num;
        a[a[p].l].r = a[p].r;
        a[a[p].r].l = a[p].l;
        p = a[p].l;
        while (a[p].num != num) {
          a[a[p].l].r = a[p].r;
          a[a[p].r].l = a[p].l;
          p = a[p].l;
        }
        a[a[p].l].r = a[p].r;
        a[a[p].r].l = a[p].l;
        p = a[p].l;
        p = a[p].r;
        if (p == n + 1) p = a[p].l;
      }
    }
  }
  int now = 0;
  while (now < n + 1) {
    if (now) printf("%c", a[now].c);
    now = a[now].r;
  }
}
