#include <bits/stdc++.h>
using namespace std;
const unsigned long long BIGEST = 1000000000000000 + 1000000000000000;
const long long BIGER = 1000000000000000;
const int BIG = 1000000000;
const int MOD = 1000000007;
unsigned long long x, y;
string st =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string st2 =
    "What are you doing while sending \"\"? Are you busy? Will you send \"\"?";
string st3[3] = {"What are you doing while sending \"",
                 "\"? Are you busy? Will you send \"", "\"?"};
unsigned long long f[100005];
char ans;
bool shit;
unsigned long long ypa(unsigned long long rk) {
  if (y >= f[rk] && f[rk] != 0) {
    y -= f[rk];
    return 0;
  }
  if (rk == 0) {
    if (y < 75) {
      shit = true;
      ans = st[y];
      return 0;
    } else {
      y -= 75;
      return 0;
    }
  } else {
    if (y < 34) {
      shit = true;
      ans = st3[0][y];
      return 0;
    } else {
      y -= 34;
      ypa(rk - 1);
    }
    if (shit) return 0;
    if (y < 32) {
      shit = true;
      ans = st3[1][y];
      return 0;
    } else {
      y -= 32;
      ypa(rk - 1);
    }
    if (shit) return 0;
    if (y < 2) {
      shit = true;
      ans = st3[2][y];
      return 0;
    } else {
      y -= 2;
    }
    if (shit) return 0;
    f[rk] = f[rk - 1] * 2 + 68;
    return 0;
  }
}
int main() {
  f[0] = 75;
  unsigned long long n;
  cin >> n;
  for (unsigned long long _ = 1; _ <= n; _++) {
    scanf("%I64d%I64d", &x, &y);
    y--;
    shit = false;
    ypa(x);
    if (shit)
      cout << ans;
    else
      cout << ".";
  }
  return 0;
}
