#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
const long long INF = 1e9;
const long long MAXN = 100007;
const long long MAXK = 1000000000LL * 1000000000;
long long A[MAXN];
string S = "What are you doing while sending \"",
       T = "\"? Are you busy? Will you send \"",
       F0 = "What are you doing at the end of the world? Are you busy? Will "
            "you save us?";
int main() {
  ios_base::sync_with_stdio(0);
  A[0] = (int)((F0).size());
  for (int i = (1); i < (MAXN); ++i) {
    A[i] = (int)((S).size()) + (int)((T).size()) + 2 + 2 * A[i - 1];
    A[i] = min(A[i], MAXK);
  }
  int q;
  cin >> q;
  for (int i = (0); i < (q); ++i) {
    int n;
    long long k;
    cin >> n >> k;
    while (true) {
      if (k > A[n]) {
        cout << '.';
        break;
      }
      if (n == 0) {
        cout << F0[k - 1];
        break;
      }
      if (k <= (int)((S).size())) {
        cout << S[k - 1];
        break;
      }
      if (k > (int)((S).size()) && k <= (int)((S).size()) + A[n - 1]) {
        --n;
        k -= (int)((S).size());
        continue;
      }
      if (k > (int)((S).size()) + A[n - 1] &&
          k <= (int)((S).size()) + A[n - 1] + (int)((T).size())) {
        cout << T[k - (int)((S).size()) - A[n - 1] - 1];
        break;
      }
      if (k > (int)((S).size()) + A[n - 1] + (int)((T).size()) &&
          k <= (int)((S).size()) + (int)((T).size()) + 2 * A[n - 1]) {
        k -= (int)((S).size()) + A[--n] + (int)((T).size());
        continue;
      }
      if (k == (int)((S).size()) + (int)((T).size()) + 2 * A[n - 1] + 1)
        cout << '\"';
      else
        cout << '?';
      break;
    }
  }
  return 0;
}
