#include <bits/stdc++.h>
using namespace std;
const uint64_t INF = 1e18 + 10;
const int MAXN = 1e5;
string base =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string exA = "What are you doing while sending \"";
string exB = "\"? Are you busy? Will you send \"";
string exC = "\"?";
uint64_t fc[MAXN + 10];
void init() {
  fc[0] = base.size();
  for (int i = 1; i <= MAXN; i++) {
    if (fc[i - 1] >= INF)
      fc[i] = INF;
    else
      fc[i] = 2 * fc[i - 1] + exA.size() + exB.size() + exC.size();
  }
}
char work(int n, uint64_t i) {
  if (i >= fc[n]) return '.';
  if (n == 0) return base[i];
  if (i < exA.size()) return exA[i];
  if (i < exA.size() + fc[n - 1]) return work(n - 1, i - exA.size());
  if (i < exA.size() + fc[n - 1] + exB.size())
    return exB[i - exA.size() - fc[n - 1]];
  if (i < exA.size() + fc[n - 1] + exB.size() + fc[n - 1])
    return work(n - 1, i - exA.size() - fc[n - 1] - exB.size());
  return exC[i - exA.size() - fc[n - 1] - exB.size() - fc[n - 1]];
}
int main() {
  init();
  int Q;
  cin >> Q;
  for (int q = 0; q < Q; q++) {
    int n;
    uint64_t k;
    cin >> n >> k;
    cout << work(n, k - 1);
  }
  cout << endl;
}
