99
1
3
2
2
3
1
1
3
3
3
3
3
3
1
1
3
3
3
3
1
1
3
2
1
1
1
1
1
1
1
3
2
2
2
1
3
3
1
1
3
2
1
3
3
1
2
3
3
3
1
2
2
2
3
3
3
3
3
3
2
2
2
2
3
3
3
1
1
3
2
1
1
2
2
2
3
3
2
1
1
2
2
1
3
2
1
1
2
3
3
3
3
2
2
2
2
2
1
3
 1
3
 2
2
1
 5
2
3
3
1
1
 5
2
2
2
2
2
 6
2
2
2
3
1
3
 5
2
3
3
3
3
 1
2
 100
2
2
1
3
1
3
3
1
1
3
1
1
3
2
1
3
1
1
3
3
2
2
3
1
1
2
3
2
2
3
1
1
2
3
2
1
2
2
3
3
1
1
3
1
2
1
3
1
1
3
2
2
2
1
1
1
3
1
3
2
1
2
2
2
3
3
2
1
1
3
3
2
1
2
1
1
3
1
2
3
2
3
3
3
2
2
1
3
1
2
3
1
2
3
3
1
2
1
3
1
 4
1
2
2
1
 3
3
3
1
 8
1
1
1
1
1
1
1
1
 5
1
1
1
1
3
 3
2
2
3
 3
2
2
2
 2
2
2
 4
2
3
3
3
 2
3
2
 100
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
 7
2
2
2
2
2
2
2
 3
2
1
1
 10
2
3
3
3
3
2
2
2
3
2
 3
3
1
3
 2
3
1
 3
1
2
3
 42
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
 2
1
3
 100
2
3
1
2
3
3
3
1
1
1
1
3
3
3
3
1
2
3
3
3
3
3
3
3
1
2
2
2
3
1
1
3
3
3
3
3
3
3
3
1
2
3
3
3
1
1
1
1
3
3
3
3
1
2
3
1
2
2
2
3
3
2
1
3
3
1
2
3
1
1
1
2
2
2
3
1
1
1
1
1
1
3
2
2
2
2
2
2
3
1
2
2
2
2
2
3
3
2
1
1
 3
3
2
2
 3
3
2
3
 2
3
3
 3
2
2
1
 5
1
1
2
2
3
 3
1
3
1
 3
1
1
3

YES
 NO
 NO
 NO
 YES
 NO
 YES
 YES
 NO
 NO
 NO
 YES
 NO
 NO
 YES
 YES
 YES
 NO
 YES
 YES
 NO
 NO
 NO
 NO
 NO
 YES
 YES
 YES
 NO
 NO
 NO
 YES
 NO
 NO
 NO

#include <bits/stdc++.h>
using namespace std;
#define sz(x) ((int)(x.size()))
#define int long long 
const string f0 =  "What are you doing at the end of the world? Are you busy? Will you save us?";
const string a =  "What are you doing while sending \"",
		   b =  "\"? Are you busy? Will you send \"",
		   c =  "\"?"; 

vector <int> l;

char rek (int n, int k){
	if( k >= l[n]) return '.'; 	
	if(n == 0){
		return f0[k];
	}
	if(k < a.size()){
		return a[k];
	}
	else if (k < a.size() + l[n-1]){
		k -= a.size();
		return rek(n - 1, k);
	}
	else if (k < a.size() + l[n-1] + b.size()){
		k -= a.size();
		k -= l[n-1];
		return b[k];
	}
	else if (k < a.size() + l[n-1] + b.size() + l[n-1]){
		k -= a.size();
		k -= l[n-1];
		k -= b.size();
		return rek(n-1, k);
	}
	else {
		k -= a.size();
		k -= l[n-1];
		k -= l[n-1];
		k -= b.size();
		return c[k];	
	}
}
main (){
	int z;
	cin >> z;
	while (z--){
		int n, k;
		cin >> n >> k;
		l.resize(n+1);
		l[0] = sz(f0);
		for (int i = 1; i <= n; ++i){
			unsigned long long e = l[i-1];
			e *= 2;
			e += sz(a) + sz(b) + sz(c);
			if (e > 1e18 + 1) e = 1e18 + 10;
			l[i] = ((long long) e);
		}
		cout << rek(n, k-1);		
	}
	cout << endl;
}
