#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
const long long LLINF = (long long)1e18 + 7;
string f0 =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string fi_l = "What are you doing while sending \"";
string fi_m = "\"? Are you busy? Will you send \"";
string fi_r = "\"?";
long long l[N];
char get(int n, long long k) {
  if (n == 0) return k <= ((int)(f0).size()) ? f0[k - 1] : '.';
  if (k <= ((int)(fi_l).size()))
    return fi_l[k - 1];
  else
    k -= ((int)(fi_l).size());
  if (k <= l[n - 1])
    return get(n - 1, k);
  else
    k -= l[n - 1];
  if (k <= ((int)(fi_m).size()))
    return fi_m[k - 1];
  else
    k -= ((int)(fi_m).size());
  if (k <= l[n - 1])
    return get(n - 1, k);
  else
    k -= l[n - 1];
  if (k <= ((int)(fi_r).size()))
    return fi_r[k - 1];
  else
    return '.';
}
int main() {
  string tmp =
      "What are you doing while sending \"What are you doing at the end of the "
      "world? Are you busy? Will you save us?\"? Are you busy? Will you send "
      "\"What are you doing at the end of the world? Are you busy? Will you "
      "save us?\"?";
  l[0] = ((int)(f0).size());
  for (int i = (1); i < (N); ++i)
    l[i] = min(LLINF, ((int)(fi_l).size()) + ((int)(fi_m).size()) +
                          ((int)(fi_r).size()) + 2 * l[i - 1]);
  int tcase;
  scanf("%d", &tcase);
  for (int icase = (0); icase < (tcase); ++icase) {
    int n;
    long long k;
    scanf("%d%lld", &n, &k);
    printf("%c", get(n, k));
  }
  return 0;
}
