import std.stdio, std.string, std.conv, std.algorithm, std.numeric;
import std.range, std.array, std.math, std.typecons, std.container, core.bitop;

string f0 = "What are you doing at the end of the world? Are you busy? Will you save us?";
string str1 = "What are you doing while sending \"";
string str2 = "\"? Are you busy? Will you send \"";
string str3 = "\"?";

long[] flen;

unittest {
    assert(str1.length == 34);
}

void main() {
    int q;
    scan(q);

    int n;
    long k;

    auto ans = new char[](q);
    flen = new long[](53 + 1);

    flen[0] = 75;
    foreach (i ; 1 .. 54) {
        flen[i] = 68 + 2*flen[i-1];
    }

    debug {
        writefln("%(%s\n%)", flen);
    }

    foreach (i ; 0 .. q) {
        scan(n, k);
        bool b;

        while (n > 53) {
            n--;
            k -= 34;

            if (k <= 0) {
                k += 34;
                b = 1;
                break;
            }
        }

        if (b) {
            ans[i] = str1[(k-1).to!uint];
        }
        else {
            ans[i] = ask(n, k);
        }
    }

    writeln(ans);
}

char ask(int n, long k) {
    if (n == 0) {
        if (k > f0.length) {
            return '.';
        }
        else {
            return f0[(k - 1).to!uint];
        }
    }
    else {
        int d1 = str1.length.to!int;
        int d2 = str2.length.to!int;
        int d3 = str3.length.to!int;

        if (1 <= k && k <= d1) {
            return str1[(k-1).to!uint];
        }
        else if (d1 < k && k <= d1 + flen[n-1]) {
            return ask(n-1, k-d1);
        }
        else if (d1 + flen[n-1] < k && k <= d1 + d2 + flen[n-1]) {
            return str2[(k - (d1 + flen[n-1])).to!uint - 1];
        }
        else if (d1 + d2 + flen[n-1] < k && k <= d1 + d2 + 2*flen[n-1]) {
            return ask(n-1, k-(d1 + d2 +flen[n-1]));
        }
        else if (d1 + d2 + 2*flen[n-1] < k && k <= d1 + d2 + d3 + 2*flen[n-1]){
            return str3[(k - (d1 + d2 + 2*flen[n-1])).to!uint - 1];
        }
        else {
            return '.';
        }
    }
}



void scan(T...)(ref T args) {
    string[] line = readln.split;
    foreach (ref arg; args) {
        arg = line.front.to!(typeof(arg));
        line.popFront();
    }
    assert(line.empty);
}


void fillAll(R, T)(ref R arr, T value) {
    static if (is(typeof(arr[] = value))) {
        arr[] = value;
    }
    else {
        foreach (ref e; arr) {
            fillAll(e, value);
        }
    }
}