#include <bits/stdc++.h>
using namespace std;
int Q;
long long N, K;
long long L[100005];
int I;
string O = "What are you doing at the end of the world? Are you busy? Will you "
           "save us?",
       A = "What are you doing while sending \"",
       B = "\"? Are you busy? Will you send \"", C = "\"?";
long long mxq = 1e18;
long long SO, SA, SB, SC;
void init() {
  L[0] = (int)(O.size());
  SO = (int)(O.size()), SA = (int)(A.size()), SB = (int)(B.size()),
  SC = (int)(C.size());
  for (int i = 1; i <= 100000; i++) {
    L[i] = L[i - 1] * 2 + SA + SB + SC;
    if (L[i] > mxq) {
      I = i + 1;
      break;
    }
  }
}
char Get(long long n, long long k) {
  if (n == 0) {
    return (k > SO) ? '.' : O[k - 1];
  }
  if (k <= SA)
    return A[k - 1];
  else if (n >= I || k <= SA + L[n - 1])
    return Get(n - 1, k - SA);
  else if (k <= SA + L[n - 1] + SB)
    return B[k - SA - L[n - 1] - 1];
  else if (k <= SA + L[n - 1] + SB + L[n - 1])
    return Get(n - 1, k - SA - L[n - 1] - SB);
  else if (k <= SA + L[n - 1] + SB + L[n - 1] + SC)
    return C[k - SA - L[n - 1] - SB - L[n - 1] - 1];
  else
    return '.';
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  init();
  cin >> Q;
  while (Q--) {
    cin >> N >> K;
    cout << Get(N, K);
  }
  cout << '\n';
  return 0;
}
