#include <bits/stdc++.h>
using namespace std;
string start =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string first_part = "What are you doing while sending \"";
string second_part = "\"? Are you busy? Will you send \"";
string third_part = "\"?";
unsigned long long fp, sp, tp;
unsigned long long l[100005];
bool found;
void solve(int n, unsigned long long k) {
  if (found) {
    return;
  }
  if (!n) {
    found = 1;
    cout << start[k - 1];
    return;
  }
  if (k <= fp) {
    found = 1;
    cout << first_part[k - 1];
    return;
  }
  if (k <= fp + l[n - 1] || !l[n - 1]) {
    solve(n - 1, k - fp);
    if (found) return;
  }
  if (k > fp + l[n - 1] && k <= fp + l[n - 1] + sp) {
    found = 1;
    cout << second_part[k - 1 - fp - l[n - 1]];
    return;
  }
  if (k > fp + l[n - 1] + sp && k <= fp + sp + l[n - 1] + l[n - 1]) {
    solve(n - 1, k - fp - sp - l[n - 1]);
    if (found) return;
  }
  if (k > fp + sp + l[n - 1] + l[n - 1]) {
    found = 1;
    cout << third_part[k - 1 - fp - sp - l[n - 1] - l[n - 1]];
    return;
  }
}
int main() {
  int q;
  cin >> q;
  fp = first_part.length();
  sp = second_part.length();
  tp = third_part.length();
  l[0] = start.length();
  for (int i = 1; i <= 100000; i++) {
    l[i] = (long long)first_part.length() + l[i - 1] +
           (long long)second_part.length() + l[i - 1] +
           (long long)third_part.length();
    if (l[i] >= 1000000000000000000LL) break;
  }
  while (q--) {
    int n;
    long long k;
    cin >> n >> k;
    if (l[n] < k && l[n]) {
      printf(".");
    } else {
      found = false;
      solve(n, k);
    }
  }
  puts("");
}
