#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
double pi = acos((double)-1);
const int MOD = 1000000007;
const int INF = 2147483647;
vector<int> s;
vector<int> mulres;
vector<int> move_perm;
vector<int> sort_perm;
void multiply_perm(vector<int>& perm, vector<int>& by, int n) {
  for (int i = 0; i < n; i++) {
    mulres[i] = perm[by[i]];
  }
  for (int i = 0; i < n; i++) {
    perm[i] = mulres[i];
  }
}
void binpow(vector<int>& perm, vector<int>& res, int p, int k, int str_len) {
  while (p) {
    if (p & 1) {
      multiply_perm(res, perm, str_len);
    }
    multiply_perm(perm, perm, str_len);
    p >>= 1;
  }
}
void fill_sort_perm(int d, int k, int str_len) {
  int si = 0;
  for (int x = 0; x < d; x++) {
    int y = x;
    while (y < k) {
      sort_perm[si++] = y;
      y += d;
    }
  }
  for (int x = si; x < str_len; x++) {
    sort_perm[x] = x;
  }
}
int main() {
  clock_t tStart = clock();
  int tests = 1;
  for (int test = 1; test <= tests; test++) {
    string str;
    cin >> str;
    int n, k, d;
    cin >> n;
    int str_len = str.length();
    for (int i = 0; i < str_len; i++) {
      s.push_back(i);
    }
    mulres.resize(str_len);
    sort_perm.resize(str_len);
    for (int i = 0; i < str_len - 1; i++) {
      move_perm.push_back(i + 1);
    }
    move_perm.push_back(0);
    for (int r = 0; r < n; r++) {
      scanf("%d %d", &k, &d);
      fill_sort_perm(d, k, str_len);
      multiply_perm(sort_perm, move_perm, str_len);
      binpow(sort_perm, s, str_len - k + 1, k, str_len);
      for (int i = 0; i < str_len; i++) mulres[i] = s[(i + k - 1) % str_len];
      for (int i = 0; i < str_len; i++) s[i] = mulres[i];
      for (int x = 0; x < s.size(); x++) {
        putchar(str[s[x]]);
      }
      puts("");
    }
  }
}
