#include <bits/stdc++.h>
using namespace std;
char f0[] =
    "|What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
char f11[] = "|What are you doing while sending .";
char f12[] = "|.? Are you busy? Will you send .";
char f13[] = "|.?";
long long a[100];
void init() {
  a[0] = 75;
  int i;
  for (i = 1; i < 100; i++) {
    a[i] = 2 * a[i - 1] + 68;
    if (a[i] > 1e18) break;
  }
}
int q, n;
long long k;
char solve(int n, long long pos) {
  if (n == 0 && pos < 76) return f0[pos];
  if (pos <= n * 34)
    return (f11[(pos - 1) % 34 + 1] == '.') ? '"' : f11[(pos - 1) % 34 + 1];
  if (n > 53) return solve(53, pos - (n - 53) * 34);
  if (pos > n * 34 && pos <= 34 + a[n - 1]) return solve(n - 1, pos - 34);
  if (pos > 34 + a[n - 1] && pos <= 34 + a[n - 1] + 32)
    return (f12[pos - (34 + a[n - 1])] == '.') ? '"'
                                               : f12[pos - (34 + a[n - 1])];
  if (pos > 34 + a[n - 1] + 32 && pos <= 34 + a[n - 1] * 2 + 32)
    return solve(n - 1, pos - (34 + a[n - 1] + 32));
  if (pos > 34 + a[n - 1] * 2 + 32 && pos <= a[n])
    return (f13[2 - a[n] + pos] == '.') ? '"' : f13[2 - a[n] + pos];
  if (pos > a[n]) return '.';
}
int main() {
  init();
  while (cin >> q) {
    while (cin >> n >> k) {
      printf("%c", solve(n, k));
    }
    printf("\n");
  }
}
