#include <bits/stdc++.h>
using namespace std;
template <typename T>
void scan(T &angka) {
  angka = 0;
  char input = getchar();
  T kali = 1;
  while (!(48 <= input && input <= 57)) {
    if (input == '-') kali = -1;
    input = getchar();
  }
  while (48 <= input && input <= 57)
    angka = (angka << 3) + (angka << 1) + input - 48, input = getchar();
  angka *= kali;
}
template <typename T1, typename T2>
void scan(T1 &angka1, T2 &angka2) {
  scan(angka1);
  scan(angka2);
}
const int MAXN = 100000;
const int batas = 55;
const long long INF = (1e18) + 1;
int q, n;
long long f[MAXN + 5], pemisah[5], k;
string awal, jarak[5];
char ans[MAXN + 5];
bool iscukup(int n, long long k) { return (f[n] >= k); }
char solve(int n, long long k) {
  if (n == 0) return awal[k - 1];
  for (int ulang = 0; ulang < 3; ulang++) {
    if (pemisah[ulang] >= k) return jarak[ulang][k - 1];
    k -= pemisah[ulang];
    if (f[n - 1] >= k) return solve(n - 1, k);
    k -= f[n - 1];
  }
  assert(false);
}
int main() {
  awal =
      "What are you doing at the end of the world? Are you busy? Will you save "
      "us?";
  jarak[0] = "What are you doing while sending \"";
  jarak[1] = "\"? Are you busy? Will you send \"";
  jarak[2] = "\"?";
  f[0] = awal.length();
  for (int i = 0; i < 3; i++) pemisah[i] = jarak[i].length();
  for (int i = 1; i <= MAXN; i++) {
    f[i] = pemisah[0] + f[i - 1] + pemisah[1] + f[i - 1] + pemisah[2];
    f[i] = min(f[i], INF);
  }
  scan(q);
  ans[q] = '\0';
  for (int id = 0; id < q; id++) {
    scan(n, k);
    if (!iscukup(n, k)) {
      ans[id] = '.';
    } else {
      ans[id] = solve(n, k);
    }
  }
  printf("%s\n", ans);
}
