#include <bits/stdc++.h>
using namespace std;
const double EPS = (double)1e-9;
const double PI = (double)acos(-1.0);
int irand(int lo, int hi) {
  return (((double)rand()) / (RAND_MAX + 1.0)) * (hi - lo + 1) + lo;
}
string toString(long long x) {
  stringstream ss;
  ss << x;
  return ss.str();
}
long long toNumber(string S) {
  long long ret;
  sscanf(S.c_str(), "%lld", &ret);
  return ret;
}
const int INF = (int)2e9;
const long long MOD = (long long)1e9 + 7;
const char aa[] = "What are you doing while sending \"";
const char bb[] = "\"? Are you busy? Will you send \"";
const char cc[] = "\"?";
const char mid[] =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
const int laa = 34;
const int lbb = 32;
const int lcc = 2;
const int lmid = 75;
long long dat[100005];
void start() {
  dat[0] = (long long)lmid;
  for (int i = 1; i <= 100003; i += 1) {
    unsigned long long ret =
        (unsigned long long)laa + (unsigned long long)dat[i - 1] +
        (unsigned long long)lbb + (unsigned long long)dat[i - 1] +
        (unsigned long long)lcc;
    ret = min(ret, (unsigned long long)(1e18) + (unsigned long long)1);
    dat[i] = (long long)ret;
  }
}
inline char solve(int n, long long k) {
  for (int i = n; i >= 0; i -= 1) {
    if (k > dat[i]) return '.';
    if (i == 0) return mid[(int)k - 1];
    if (k <= (long long)laa) return aa[(int)k - 1];
    k -= (long long)laa;
    if (k <= dat[i - 1]) continue;
    k -= dat[i - 1];
    if (k <= (long long)lbb) return bb[(int)k - 1];
    k -= (long long)lbb;
    if (k <= dat[i - 1]) continue;
    k -= dat[i - 1];
    if (k <= (long long)lcc) return cc[(int)k - 1];
    k -= (long long)lcc;
    return '.';
  }
}
int main() {
  start();
  int t, n;
  long long k;
  scanf("%d", &t);
  while (t--) scanf("%d %lld", &n, &k), putchar(solve(n, k));
  return 0;
}
