#include <bits/stdc++.h>
using namespace std;
char oristr[1000] =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
char befstr[1000] = "What are you doing while sending \"";
char midstr[1000] = "\"? Are you busy? Will you send \"";
char aftstr[1000] = "\"?";
int orilen, beflen, midlen, aftlen;
int n;
long long len[1000];
const long long INF = (long long)2000000000000000000;
const int biggest = 500;
long long getlen(int p) {
  if (p > biggest) return INF;
  return len[p];
}
char enquiry(int depth, long long place) {
  if (depth == 0) {
    if (place < orilen) return oristr[place];
    if (place == orilen) return '.';
    return '.';
  }
  if (beflen > place) return befstr[place];
  place -= beflen;
  if (getlen(depth - 1) > place) return enquiry(depth - 1, place);
  place -= getlen(depth - 1);
  if (midlen > place) return midstr[place];
  place -= midlen;
  if (getlen(depth - 1) > place) return enquiry(depth - 1, place);
  place -= getlen(depth - 1);
  if (aftlen > place) return aftstr[place];
  place -= aftlen;
  if (place == 0) return '.';
  return '.';
}
void calclen() {
  orilen = strlen(oristr);
  beflen = strlen(befstr);
  midlen = strlen(midstr);
  aftlen = strlen(aftstr);
  len[0] = orilen;
  for (int i = 1; i <= 500; i++) {
    len[i] = (long long)beflen + len[i - 1] + midlen + len[i - 1] + aftlen;
    if (len[i] > INF) len[i] = INF;
  }
}
int main() {
  calclen();
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    int t;
    long long k;
    scanf("%d%I64d", &t, &k);
    k--;
    putchar(enquiry(t, k));
  }
  printf("\n");
  return 0;
}
