#include <bits/stdc++.h>
using namespace std;
int getint() {
  char ch = getchar();
  for (; ch < '0' || ch > '9'; ch = getchar())
    ;
  int tmp = 0;
  for (; ch >= '0' && ch <= '9'; ch = getchar()) tmp = tmp * 10 + ch - 48;
  return tmp;
}
const int maxn = 1000000 + 10;
int N, M, L[maxn], T[maxn], P[maxn], w[maxn];
char s[maxn], ss[maxn];
void permutate(int *A, int *B) {
  static int C[maxn];
  for (int i = (0), _i = (N - 1); i <= _i; i++) C[i] = B[A[i]];
  for (int i = (0), _i = (N - 1); i <= _i; i++) A[i] = C[i];
}
void mul(int *T, int x) {
  static int ret[maxn];
  for (int i = (0), _i = (N - 1); i <= _i; i++) ret[i] = i;
  for (; x; x >>= 1) {
    if (x & 1) permutate(ret, T);
    permutate(T, T);
  }
  for (int i = (0), _i = (N - 1); i <= _i; i++) T[i] = ret[i];
}
void printt(int *T) {
  for (int i = (0), _i = (N - 1); i <= _i; i++) printf("%d ", T[i]);
  printf("\n");
}
int main() {
  for (; scanf("%s", s) != EOF;) {
    N = strlen(s);
    scanf("%d", &M);
    L[0] = N - 1;
    for (int i = 1; i < N; i++) L[i] = i - 1;
    while (M--) {
      int len = getint(), modd = getint();
      for (int i = 0; i < modd; i++) w[i] = 0;
      for (int i = 0; i < len; i++) w[i % modd]++;
      for (int i = 1; i < modd; i++) w[i] += w[i - 1];
      for (int i = len - 1; i >= 0; i--) P[i] = --w[i % modd];
      for (int i = len; i < N; i++) P[i] = i;
      for (int i = (0), _i = (N - 1); i <= _i; i++) T[i] = L[i];
      permutate(T, P);
      mul(T, N - len);
      permutate(P, T);
      for (int i = (0), _i = (N - 1); i <= _i; i++) P[i] = (P[i] + N - len) % N;
      for (int i = (0), _i = (N - 1); i <= _i; i++) T[P[i]] = i;
      for (int i = (0), _i = (N - 1); i <= _i; i++) ss[i] = s[T[i]];
      for (int i = (0), _i = (N - 1); i <= _i; i++) s[i] = ss[i];
      printf("%s\n", s);
    }
  }
  return 0;
}
