#include <bits/stdc++.h>
const int N = (int)1e6 + 5;
int n, m, k, d;
char s[N];
int A, O, ans[2][N], opt[2][N];
int main() {
  scanf("%s", s);
  n = strlen(s);
  for (int i = 0; i < n; i++) ans[A][i] = i;
  scanf("%d", &m);
  while (m--) {
    scanf("%d%d", &k, &d);
    for (int i = 0; i < n; i++) opt[O][i] = i;
    int t = 0;
    for (int r = 0; r < d; r++)
      for (int i = r; i < k; i += d) opt[O][t++] = i;
    int tmp = opt[O][0];
    for (int i = 1; i < n; i++) opt[O][i - 1] = opt[O][i];
    opt[O][n - 1] = tmp;
    for (int s = n - k + 1; s; s >>= 1) {
      if (s & 1) {
        for (int i = 0; i < n; i++) ans[!A][i] = ans[A][opt[O][i]];
        A ^= 1;
      }
      for (int i = 0; i < n; i++) opt[!O][i] = opt[O][opt[O][i]];
      O ^= 1;
    }
    for (int i = 0; i < k - 1; i++) ans[!A][n - (k - 1) + i] = ans[A][i];
    for (int i = k - 1; i < n; i++) ans[!A][i - (k - 1)] = ans[A][i];
    A ^= 1;
    for (int i = 0; i < n; i++) putchar(s[ans[A][i]]);
    putchar('\n');
  }
}
