#include <bits/stdc++.h>
using namespace std;
inline void read(int &x) {
  char ch;
  bool flag = false;
  for (ch = getchar(); !isdigit(ch); ch = getchar())
    if (ch == '-') flag = true;
  for (x = 0; isdigit(ch); x = x * 10 + ch - '0', ch = getchar())
    ;
  x = flag ? -x : x;
}
inline void read(long long &x) {
  char ch;
  bool flag = false;
  for (ch = getchar(); !isdigit(ch); ch = getchar())
    if (ch == '-') flag = true;
  for (x = 0; isdigit(ch); x = x * 10 + ch - '0', ch = getchar())
    ;
  x = flag ? -x : x;
}
char f0[10000] =
    "What are you doing at the end of the world? Are you busy? Will you save "
    "us?";
char s1[1000] = "What are you doing while sending \"";
char s2[1000] = "\"? Are you busy? Will you send \"";
char s3[1000] = "\"?";
int len1, len2, len3;
long long flen[100010];
char query(long long x, long long y) {
  if (y > flen[x]) return '.';
  if (x == 0) return f0[y - 1];
  if (y <= len1) return s1[y - 1];
  if ((y > len1) && (y <= len1 + flen[x - 1])) return query(x - 1, y - len1);
  if ((y > len1 + flen[x - 1]) && (y <= len1 + flen[x - 1] + len2))
    return s2[y - (len1 + flen[x - 1]) - 1];
  if ((y > len1 + flen[x - 1] + len2) &&
      (y <= len1 + flen[x - 1] + len2 + flen[x - 1]))
    return query(x - 1, y - (len1 + flen[x - 1] + len2));
  return s3[y - (len1 + flen[x - 1] + len2 + flen[x - 1]) - 1];
}
char ans[1000];
int main() {
  flen[0] = strlen(f0);
  len1 = strlen(s1);
  len2 = strlen(s2);
  len3 = strlen(s3);
  for (int i = 1; i <= 100000; i++) {
    if (flen[i - 1] * 2 + len1 + len2 + len3 <= 1e18)
      flen[i] = flen[i - 1] * 2ll + len1 + len2 + len3;
    else
      flen[i] = 1e18;
  }
  int T;
  read(T);
  for (int i = 0; i < T; i++) {
    long long a, b;
    read(a);
    read(b);
    ans[i] = query(a, b);
  }
  ans[T] = 0;
  puts(ans);
  return 0;
}
