#include <bits/stdc++.h>
using namespace std;
int k, a[100007], v[30][524295];
char y, c[1007];
string st;
void mud(int u, int l, int r) {
  int m = (r + l) / 2, i, j;
  if (r == l) {
    v[st[r] - 'a'][u] = 1;
    return;
  }
  mud(2 * u, l, m);
  mud(2 * u + 1, m + 1, r);
  for (y = 'a'; y <= 'z'; y++) {
    v[y - 'a'][u] = v[y - 'a'][2 * u] + v[y - 'a'][2 * u + 1];
  }
  return;
}
void print(int u, int l, int r) {
  int m = (r + l) / 2, i, j;
  if (r == l) {
    for (y = 'a'; y <= 'z'; y++) {
      if (v[y - 'a'][u] == 1) {
        printf("%c", y);
      }
    }
    return;
  }
  print(u * 2, l, m);
  print(u * 2 + 1, m + 1, r);
  return;
}
void delet(int u, int l, int r, int n, int buk) {
  int m = (r + l) / 2, i, j;
  v[buk][u]--;
  if (r == l) {
    v[buk][u] = 0;
    return;
  }
  if (v[buk][u * 2] >= n) {
    delet(u * 2, l, m, n, buk);
  } else {
    delet(u * 2 + 1, m + 1, r, n - v[buk][u * 2], buk);
  }
  return;
}
void solve() {
  int i, j, r, l, n, b;
  char buk;
  gets(c);
  gets(c);
  st = "";
  for (i = 0; i < k; i++) {
    st += c;
  }
  for (i = 0; i < 30; i++) {
    for (j = 0; j < 524295; j++) {
      v[i][j] = 0;
    }
  }
  mud(1, 0, st.length() - 1);
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d%c%c", &j, &buk, &buk);
    b = buk - 'a';
    delet(1, 0, st.length() - 1, j, b);
  }
  print(1, 0, st.length() - 1);
}
int main() {
#pragma comment(linker, "/STACK:67108864")
  while (scanf("%d", &k) != EOF) {
    solve();
  }
  return 0;
}
