#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f, MOD = 1e9 + 7;
const unsigned long long LINF = 0x3f3f3f3f3f3f3f3f;
const double PI = acos(-1), EPS = 1e-9;
const int N = 1e5 + 9;
int n, k;
char s0[] =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
char t[][50] = {"What are you doing while sending \"",
                "\"? Are you busy? Will you send \"", "\"?"};
unsigned long long f[N] = {strlen(s0)};
unsigned long long d[] = {strlen(t[0]), strlen(t[1]), strlen(t[2])};
char find(long long n, long long k) {
  if (n == 0) {
    return k < f[0] ? s0[k] : '.';
  }
  if (k < d[0]) return t[0][k];
  k -= d[0];
  if (k < f[n - 1]) return find(n - 1, k);
  k -= f[n - 1];
  if (k < d[1]) return t[1][k];
  k -= d[1];
  if (k < f[n - 1]) return find(n - 1, k);
  k -= f[n - 1];
  if (k < d[2]) return t[2][k];
  return '.';
}
int main() {
  for (int i = 1; i < N; i++)
    f[i] = min(LINF, 2 * f[i - 1] + d[0] + d[1] + d[2]);
  int q;
  scanf("%d", &q);
  while (q--) {
    long long n, k;
    scanf("%lld%lld", &n, &k);
    printf("%c", find(n, k - 1));
  }
  printf("\n");
  return 0;
}
