#include<bits/stdc++.h>
#define mod 1000000007
#define ll long long
#define p(x) pair<x,x>
#define v(x) vector<x>
#define Tree node*
#define sz(a) a.size()
#define x first
#define y second
#define pb(a) push_back(a)
#define pf(a) push_front(a)
#define FOR(i, l, r) for (int i = l; i < r; i++)
#define FORX(i, l, r, x) for (int i = l; i < r; i += x)
#define FORD(i, l, r) for (int i = l; i >= r; i--)
#define correct(x, y, n, m) 0 <= (x)&&(x) < (n)& & 0 <= (y)&&(y) < (m)
#define cin(M, n) FOR(i, 0, n)cin >> M[i]
#define cout(M, n) FOR(i, 0, n)cout << M[i] << " "
#define rs(M, x) memset(M, x, sizeof(M))
#define reset() FOR(i, 0, 1001)A[i].clear(), check[i] = false
#define faster() cin.tie(0); ios_base::sync_with_stdio(false); cout.tie(0);
#define run() int t; cin >> t; while (t--)
#define pq(x) priority_queue<x>
#define neg_pq(x) priority_queue<x, vector<x>, greater<x>>
#define all(M) M.begin(), M.end()
using namespace std;
//_______________________NGUYỄN_NGỌC_TOÀN_______________________//
ll f[100];
char Load(ll n, ll k) {
if (n == 1)return 'A';
if (n == 2)return 'B';
if (k <= f[n - 2])return Load(n - 2, k);
else return Load(n - 1, k - f[n - 2]);
}
int main() {
faster();
f[1] = f[2] = 1;
FOR(i, 3, 93)f[i] = f[i - 1] + f[i - 2];
run() {
ll n, k; cin >> n >> k;
cout << Load(n, k) << endl;
}
}
//__________________________B20DCPT173__________________________//
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBtb2QgICAgICAgICAgICAgICAgIDEwMDAwMDAwMDcKI2RlZmluZSBsbCAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZwojZGVmaW5lCXAoeCkgICAgICAgICAgICAgICAgcGFpcjx4LHg+CiNkZWZpbmUgdih4KSAgICAgICAgICAgICAgICB2ZWN0b3I8eD4KI2RlZmluZSBUcmVlICAgICAgICAgICAgICAgIG5vZGUqCiNkZWZpbmUgc3ooYSkgICAgICAgICAgICAgICBhLnNpemUoKQojZGVmaW5lIHggICAgICAgICAgICAgICAgICAgZmlyc3QKI2RlZmluZSB5ICAgICAgICAgICAgICAgICAgIHNlY29uZAojZGVmaW5lIHBiKGEpICAgICAgICAgICAgICAgcHVzaF9iYWNrKGEpCiNkZWZpbmUgcGYoYSkgICAgICAgICAgICAgICBwdXNoX2Zyb250KGEpCiNkZWZpbmUgRk9SKGksIGwsIHIpICAgICAgICBmb3IgKGludCBpID0gbDsgaSA8IHI7IGkrKykKI2RlZmluZSBGT1JYKGksIGwsIHIsIHgpICAgIGZvciAoaW50IGkgPSBsOyBpIDwgcjsgaSArPSB4KQojZGVmaW5lIEZPUkQoaSwgbCwgcikgICAgICAgZm9yIChpbnQgaSA9IGw7IGkgPj0gcjsgaS0tKQojZGVmaW5lIGNvcnJlY3QoeCwgeSwgbiwgbSkgMCA8PSAoeCkmJih4KSA8IChuKSYgJiAwIDw9ICh5KSYmKHkpIDwgKG0pCiNkZWZpbmUgY2luKE0sIG4pICAgICAgICAgICBGT1IoaSwgMCwgbiljaW4gPj4gTVtpXQojZGVmaW5lIGNvdXQoTSwgbikgICAgICAgICAgRk9SKGksIDAsIG4pY291dCA8PCBNW2ldIDw8ICIgIgojZGVmaW5lIHJzKE0sIHgpICAgICAgICAgICAgbWVtc2V0KE0sIHgsIHNpemVvZihNKSkKI2RlZmluZSByZXNldCgpICAgICAgICAgICAgIEZPUihpLCAwLCAxMDAxKUFbaV0uY2xlYXIoKSwgY2hlY2tbaV0gPSBmYWxzZQojZGVmaW5lIGZhc3RlcigpICAgICAgICAgICAgY2luLnRpZSgwKTsgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNvdXQudGllKDApOwojZGVmaW5lIHJ1bigpICAgICAgICAgICAgICAgaW50IHQ7IGNpbiA+PiB0OyB3aGlsZSAodC0tKQojZGVmaW5lIHBxKHgpICAgICAgICAgICAgICAgcHJpb3JpdHlfcXVldWU8eD4KI2RlZmluZSBuZWdfcHEoeCkgICAgICAgICAgIHByaW9yaXR5X3F1ZXVlPHgsIHZlY3Rvcjx4PiwgZ3JlYXRlcjx4Pj4KI2RlZmluZSBhbGwoTSkgICAgICAgICAgICAgIE0uYmVnaW4oKSwgTS5lbmQoKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy9fX19fX19fX19fX19fX19fX19fX19fX05HVVnhu4ROX05H4buMQ19UT8OATl9fX19fX19fX19fX19fX19fX19fX19fLy8KCmxsIGZbMTAwXTsKCmNoYXIgTG9hZChsbCBuLCBsbCBrKSB7CglpZiAobiA9PSAxKXJldHVybiAnQSc7CglpZiAobiA9PSAyKXJldHVybiAnQic7CglpZiAoayA8PSBmW24gLSAyXSlyZXR1cm4gTG9hZChuIC0gMiwgayk7CgllbHNlIHJldHVybiBMb2FkKG4gLSAxLCBrIC0gZltuIC0gMl0pOwp9CgppbnQgbWFpbigpIHsKCWZhc3RlcigpOwoJZlsxXSA9IGZbMl0gPSAxOwoJRk9SKGksIDMsIDkzKWZbaV0gPSBmW2kgLSAxXSArIGZbaSAtIDJdOwoJcnVuKCkgewoJCWxsIG4sIGs7IGNpbiA+PiBuID4+IGs7CgkJY291dCA8PCBMb2FkKG4sIGspIDw8IGVuZGw7Cgl9Cn0KCi8vX19fX19fX19fX19fX19fX19fX19fX19fX19CMjBEQ1BUMTczX19fX19fX19fX19fX19fX19fX19fX19fX18vLw==