#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
template <class T>
inline void rd(T &x) {
  char c = getchar();
  int s = 1;
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  if (c == '-')
    s = -1, x = 0;
  else
    x = c - '0';
  while (c = getchar(), c >= '0' && c <= '9') x = x * 10 + c - '0';
  x *= s;
}
string s0 =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string s1 = "What are you doing while sending \"";
string s2 = "\"? Are you busy? Will you send \"";
string s3 = "\"?";
long long len[1000] = {0}, l0, l1, l2, l3, x;
void init() {
  l0 = s0.size();
  l1 = s1.size();
  l2 = s2.size();
  l3 = s3.size();
  len[0] = l0;
  x = 0;
  while (len[x] <= 1e18) {
    x++;
    len[x] = l1 + len[x - 1] * 2 + l2 + l3;
  }
}
char dfs(int n, long long k) {
  if (n <= x && k > len[n]) return '.';
  if (n == 0) return s0[k - 1];
  if (k <= l1) return s1[k - 1];
  k -= l1;
  if (n > x || k <= len[n - 1]) return dfs(n - 1, k);
  k -= len[n - 1];
  if (k <= l2) return s2[k - 1];
  k -= l2;
  if (n > x || k <= len[n - 1]) return dfs(n - 1, k);
  k -= len[n - 1];
  return s3[k - 1];
}
int main() {
  init();
  int t;
  rd(t);
  while (t--) {
    int n;
    long long k;
    rd(n);
    rd(k);
    printf("%c", dfs(n, k));
  }
  printf("\n");
}
