#include <bits/stdc++.h>
using namespace std;
string f0 =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string q1 = "What are you doing while sending \"";
string q2 = "\"? Are you busy? Will you send \"";
string q3 = "\"?";
string f1 = q1 + f0 + q2 + f0 + q3;
vector<char> ans;
const int MAXN = 1e5 + 10, ADD = q1.size() + q2.size() + q3.size();
;
long long int n, k, s[MAXN];
char f(long long int a, long long int k) {
  if (a == 0)
    if (k > f0.size())
      return '.';
    else
      return f0[k - 1];
  if (k <= q1.size())
    return q1[k - 1];
  else if (k > q1.size() &&
           (k <= s[a - 1] + q1.size() || s[a - 1] == 1e18 + 100))
    return f(a - 1, k - q1.size());
  else if (k > s[a - 1] + q1.size() && k <= s[a - 1] + q1.size() + q2.size())
    return q2[k - s[a - 1] - q1.size() - 1];
  else if (k > s[a - 1] + q1.size() + q2.size() &&
           k <= s[a - 1] + q1.size() + q2.size() + s[a - 1])
    return f(a - 1, k - s[a - 1] - q1.size() - q2.size());
  else if (k == s[a])
    return '?';
  else if (k == s[a] - 1)
    return '\"';
  else
    return '.';
}
long long int l, o;
int main() {
  cin >> n;
  s[0] = f0.size();
  for (int i = 1; i < 56; i++) s[i] = 2 * s[i - 1] + ADD;
  for (int i = 56; i < MAXN; i++) s[i] = 1e18 + 100;
  for (int i = 0; i < n; i++) {
    cin >> l >> o;
    ans.push_back(f(l, o));
  }
  for (int i = 0; i < ans.size(); i++) cout << ans[i];
}
