#include <bits/stdc++.h>
using namespace std;
const string def =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
const string s1 = "What are you doing while sending \"";
const string s2 = "\"? Are you busy? Will you send \"";
const string s3 = "\"?";
const int N = 1E5 + 2;
int q;
long long f[N], k, l1, l2, l3;
char dfs(int x, long long k) {
  if (x == 0) return def[k - 1];
  if (k > l1 + f[x - 1] + l2 + f[x - 1])
    return s3[k - l1 - l2 - f[x - 1] - f[x - 1] - 1];
  if (k > l1 + f[x - 1] + l2) return dfs(x - 1, k - l1 - f[x - 1] - l2);
  if (k > l1 + f[x - 1]) return s2[k - l1 - f[x - 1] - 1];
  if (k > l1) return dfs(x - 1, k - l1);
  return s1[k - 1];
}
int main() {
  l1 = s1.size();
  l2 = s2.size();
  l3 = s3.size();
  cin >> q;
  f[0] = 1ll * def.size();
  for (int i = 1; i <= 100000; ++i) {
    f[i] = l1 + f[i - 1] + l2 + f[i - 1] + l3;
    if (f[i] > (long long)1E18) {
      for (int j = i + 1; j <= 100000; ++j) f[j] = f[j - 1];
      break;
    }
  }
  for (int cnt = 1; cnt <= q; ++cnt) {
    int x;
    cin >> x >> k;
    if (k > f[x])
      cout << ".";
    else
      cout << dfs(x, k);
  }
  return 0;
}
