#include <iostream>
#include <vector>
using namespace std;
// Hàm tính độ dài của xâu Fibonacci G(n)
int getLength(int n) {
if (n == 1 || n == 2) return 1;
int a = 1, b = 1; // len(1) = 1, len(2) = 1
for (int i = 3; i <= n; i++) {
int temp = a + b; // len(n) = len(n-2) + len(n-1)
a = b;
b = temp;
}
return b;
}
// Hàm tìm ký tự ở vị trí i trong G(n)
char findCharacter(int n, int i) {
if (n == 1) return 'A';
if (n == 2) return 'B';
// Tính độ dài của G(n-2) và G(n-1)
int len_n_minus_2 = getLength(n - 2);
if (i <= len_n_minus_2) {
// Nếu i nằm trong G(n-2), tiếp tục tìm trong G(n-2)
return findCharacter(n - 2, i);
} else {
// Nếu i nằm trong G(n-1), điều chỉnh i và tìm trong G(n-1)
return findCharacter(n - 1, i - len_n_minus_2);
}
}
int main() {
int t;
cin >> t;
while (t--) {
int n, k;
cin >> n >> k;
// Kiểm tra và in ra ký tự tại vị trí k trong G(n)
cout << findCharacter(n, k) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gSMOgbSB0w61uaCDEkeG7mSBkw6BpIGPhu6dhIHjDonUgRmlib25hY2NpIEcobikKaW50IGdldExlbmd0aChpbnQgbikgewogICAgaWYgKG4gPT0gMSB8fCBuID09IDIpIHJldHVybiAxOwogICAgaW50IGEgPSAxLCBiID0gMTsgIC8vIGxlbigxKSA9IDEsIGxlbigyKSA9IDEKICAgIGZvciAoaW50IGkgPSAzOyBpIDw9IG47IGkrKykgewogICAgICAgIGludCB0ZW1wID0gYSArIGI7ICAvLyBsZW4obikgPSBsZW4obi0yKSArIGxlbihuLTEpCiAgICAgICAgYSA9IGI7CiAgICAgICAgYiA9IHRlbXA7CiAgICB9CiAgICByZXR1cm4gYjsKfQoKLy8gSMOgbSB0w6xtIGvDvSB04buxIOG7nyB24buLIHRyw60gaSB0cm9uZyBHKG4pCmNoYXIgZmluZENoYXJhY3RlcihpbnQgbiwgaW50IGkpIHsKICAgIGlmIChuID09IDEpIHJldHVybiAnQSc7CiAgICBpZiAobiA9PSAyKSByZXR1cm4gJ0InOwoKICAgIC8vIFTDrW5oIMSR4buZIGTDoGkgY+G7p2EgRyhuLTIpIHbDoCBHKG4tMSkKICAgIGludCBsZW5fbl9taW51c18yID0gZ2V0TGVuZ3RoKG4gLSAyKTsKICAgIGlmIChpIDw9IGxlbl9uX21pbnVzXzIpIHsKICAgICAgICAvLyBO4bq/dSBpIG7hurFtIHRyb25nIEcobi0yKSwgdGnhur9wIHThu6VjIHTDrG0gdHJvbmcgRyhuLTIpCiAgICAgICAgcmV0dXJuIGZpbmRDaGFyYWN0ZXIobiAtIDIsIGkpOwogICAgfSBlbHNlIHsKICAgICAgICAvLyBO4bq/dSBpIG7hurFtIHRyb25nIEcobi0xKSwgxJFp4buBdSBjaOG7iW5oIGkgdsOgIHTDrG0gdHJvbmcgRyhuLTEpCiAgICAgICAgcmV0dXJuIGZpbmRDaGFyYWN0ZXIobiAtIDEsIGkgLSBsZW5fbl9taW51c18yKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGludCBuLCBrOwogICAgICAgIGNpbiA+PiBuID4+IGs7CiAgICAgICAgCiAgICAgICAgLy8gS2nhu4NtIHRyYSB2w6AgaW4gcmEga8O9IHThu7EgdOG6oWkgduG7iyB0csOtIGsgdHJvbmcgRyhuKQogICAgICAgIGNvdXQgPDwgZmluZENoYXJhY3RlcihuLCBrKSA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K