#include <bits/stdc++.h>
using namespace std;
const int inf = 1 << 30;
const long long INF = (long long)1e18;
const int mod = 1e9 + 7;
const int maxn = 1e5 + 5;
string f0 =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
string p = "What are you doing while sending \"";
string s = "\"? Are you busy? Will you send \"";
string q = "\"?";
string str;
int find_threshold() {
  long long sz = ((int)(f0).size());
  int ans = 0;
  while (2 * sz + 68 <= INF) {
    sz = 2 * sz + 68;
    ans++;
  }
  return ans;
}
long long com(int n) {
  long long ans = ((int)(f0).size());
  for (int i = 0; i < n; i++) ans = 2 * ans + 68;
  return ans;
}
char find_ans(int n, long long k) {
  while (n > 53) {
    if (k >= 34)
      k -= 34;
    else
      return p[k];
    n--;
  }
  long long temp = com(n);
  if (k >= temp) return '.';
  if (n == 0) return f0[k];
  if (k < 34)
    return p[k];
  else if (temp - k == 2)
    return '\"';
  else if (temp - k == 1)
    return '?';
  else if ((k - (temp / 2) < 32) && (k - (temp / 2) >= 0))
    return s[k - (temp / 2)];
  else if (k < (temp / 2))
    return find_ans(n - 1, k - 34);
  else
    return find_ans(n - 1, k - temp / 2 - 32);
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  string ans = "";
  int t;
  cin >> t;
  for (int x = 0; x < t; x++) {
    long long n, k;
    cin >> n >> k;
    k--;
    ans += find_ans(n, k);
  }
  cout << ans;
  return 0;
}
