#include <bits/stdc++.h>
const int N = 1e5 + 100;
const char s1[1000] =
    "\000What are you doing at the end of the world? Are you busy? Will you "
    "save us?";
const char s2[1000] = "\000What are you doing while sending \"";
const char s3[1000] = "\000\"? Are you busy? Will you send \"";
const char s4[1000] = "\000\"?";
const int d1 = 75, d2 = 34, d3 = 32, d4 = 2;
int Q, n;
long long m;
long long g[N];
void end(int x, long long p) {
  if (x <= -1) printf(".");
  if (x == 1) printf("%c", s1[p]);
  if (x == 2) printf("%c", s2[p]);
  if (x == 3) putchar(s3[p]);
  if (x == 4) printf("%c", s4[p]);
}
void find(int x, long long p, bool flag, bool f2) {
  if (p > g[x] && f2 && g[x] != 0) {
    end(-1, 0);
    return;
  }
  if (x == 0 && p - d1 <= 0) {
    end(1, p);
    return;
  }
  if (p - d2 <= 0) {
    end(2, p);
    return;
  }
  if (g[x] == 0 || p - g[x] <= 0)
    find(x - 1, p - d2, 1, 0);
  else {
    p -= g[x];
    if (flag) {
      if (p - d3 <= 0) {
        end(3, p);
        return;
      }
      p -= d3;
      find(x, p, 0, 0);
    } else {
      end(4, p);
      return;
    }
  }
}
int main() {
  scanf("%d", &Q);
  g[0] = d1;
  for (int i = 1; i <= 100000; ++i) {
    g[i] = 2 * g[i - 1] + d2 + d3 + d4;
    if (g[i] > 2e18) break;
  }
  while (Q--) {
    scanf("%d%lld", &n, &m);
    find(n, m, 1, 1);
  }
}
