#include <bits/stdc++.h>
using namespace std;
vector<unsigned long long> len;
string base =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string x =
    "What are you doing while sending \"\"? Are you busy? Will you send \"\"?";
string first = "What are you doing while sending \"";
string second = "\"? Are you busy? Will you send \"";
string third = "\"?";
string f1 =
    "What are you doing while sending \"What are you doing at the end of the "
    "world? Are you busy? Will you save us?\"? Are you busy? Will you send "
    "\"What are you doing at the end of the world? Are you busy? Will you save "
    "us?\"?";
char get(long long level, long long pos) {
  int cur = 0;
  if (level < 53 && pos >= len[level]) {
    return '.';
  }
  if (level == 0) {
    return base[pos];
  }
  if (pos < first.length()) {
    return first[pos];
  }
  pos -= first.length();
  if (level >= 54 || pos < len[level - 1]) {
    return get(level - 1, pos);
  }
  pos -= len[level - 1];
  if (pos < second.length()) {
    return second[pos];
  }
  pos -= second.length();
  if (pos < len[level - 1]) {
    return get(level - 1, pos);
  }
  pos -= len[level - 1];
  if (pos < third.length()) {
    return third[pos];
  }
  return '.';
}
int main() {
  len.push_back(base.length());
  for (int i = 0; i <= 1e5; i++) {
    len.push_back(2LL * len.back() + x.size());
  }
  int q;
  cin >> q;
  for (int qq = 0; qq < q; qq++) {
    long long l, p;
    cin >> l >> p;
    p--;
    cout << get(l, p);
  }
  cout << endl;
}
