#include <bits/stdc++.h>
using namespace std;
const int maxn = 3100000, maxQ = 5100;
int n, K, Q;
char A[maxn], Col[maxn];
struct Tpair {
  int x, y;
  Tpair(int _x = 0, int _y = 0) { x = _x, y = _y; }
  inline bool operator<(const Tpair &b) const {
    return x != b.x ? x < b.x : y < b.y;
  }
} B[maxQ];
struct Tfind {
  int F[maxn];
  void set(int n) {
    int i;
    for (i = 0; i <= n + 1; ++i) F[i] = i;
  }
  int find(int x) {
    int i, y;
    for (y = x; y != F[y]; y = F[y])
      ;
    for (; i = F[x], x != y; F[x] = y, x = i)
      ;
    return y;
  }
  inline void add(int a, int b) { F[find(a)] = find(b); }
  inline int R(int x) { return find(x + 1); }
} Fd, C;
struct Tbit {
  int n, F[maxn];
  void build(int _n) { n = _n; }
  void dec(int x) {
    for (; x <= n; x += x & -x) --F[x];
  }
  int get(int x) {
    int Fc = 0;
    for (; x; x -= x & -x) Fc += F[x];
    return Fc;
  }
} Bt;
namespace Ninit {
void init() {
  int i;
  scanf("%s", A + 1), n = strlen(A + 1);
  scanf("%d%d", &K, &Q);
  for (i = 0; i < Q; ++i) scanf("%d%d", &B[i].x, &B[i].y);
  reverse(B, B + Q);
}
}  // namespace Ninit
namespace Nsolve {
int m;
int bound(int x) {
  int l, r, t;
  for (l = 0, r = K + 1; l + 1 < r; Bt.get(t) < x ? l = t : r = t)
    t = l + r >> 1;
  return l + 1;
}
struct Tpos {
  int l, r, x;
  Tpos(int _l, int _r) { l = _l, r = _r, x = 0; };
  inline int operator()() {
    int ret;
    if (!x) x = C.R(l);
    if (x > r) x = l;
    ret = x, x = C.R(C.R(x));
    return ret;
  }
};
void solve() {
  int i, k, a, b, x;
  Tpair *p;
  m = K, Fd.set(K), C.set(K), Bt.build(K);
  for (i = 1; i <= K; ++i) Bt.F[i] = i & -i;
  for (p = B; p < B + Q; ++p) {
    x = min(m - p->y, p->y - p->x + 1);
    if (x <= 0) continue;
    a = bound(p->x), b = bound(p->y), m -= x;
    Tpos q(a, b);
    for (k = 0, i = C.R(b); k < x; ++k, i = C.R(i))
      Fd.add(i, q()), C.add(i, i + 1), Bt.dec(i);
  }
  for (i = 1; i <= m; ++i) Col[bound(i)] = A[i];
  for (i = 1; i <= K; ++i) printf("%c", Col[Fd.find(i)]);
  printf("\n");
}
}  // namespace Nsolve
int main() {
  Ninit::init();
  Nsolve::solve();
  return 0;
}
