#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define MAX_NUM 26
int n, p, q,ok;
int used[MAX_NUM][MAX_NUM];
int pathX[MAX_NUM];
int pathY[MAX_NUM];
int dir[8][2] = { { -2, -1 }, { -2, 1 }, { -1, -2 }, { -1, 2 }, { 1, -2 }, { 1,2 }, { 2, -1 }, { 2, 1 } };
void dfs(int x, int y, int step) {
pathX[step - 1] = x;
pathY[step - 1] = y;
used[x][y] = 1;
if (step == p*q) {ok = 1;return;}
for (int i=0; i<8; ++i) {
int _x = x + dir[i][0];
int _y = y + dir[i][1];
if (_x>=0 && _y>=0 && _x<p && _y<q && !used[_x][_y]) {
dfs(_x, _y, step+1);
}
}
used[x][y] = 0;
}
int main() {
int sum = 0;
cin>>n;
while (n--) {
cin>>p>>q;
ok=0;
memset(used, 0, sizeof(used));
memset(pathX, 0, sizeof(pathX));
memset(pathY, 0, sizeof(pathY));
printf("Scenario #%d:\n", ++sum);
dfs(0, 0, 1);
if (ok != 1) {
printf("impossible\n");
} else {
for (int i = 0; i < p * q; i++) {
printf("%c%d", pathY[i] + 'A', pathX[i] + 1);
}
printf("\n");
}
printf("\n");
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHN0cmluZy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBNQVhfTlVNICAyNgppbnQgbiwgcCwgcSxvazsKCmludCB1c2VkW01BWF9OVU1dW01BWF9OVU1dOwppbnQgcGF0aFhbTUFYX05VTV07CmludCBwYXRoWVtNQVhfTlVNXTsKaW50IGRpcls4XVsyXSA9IHsgeyAtMiwgLTEgfSwgeyAtMiwgMSB9LCB7IC0xLCAtMiB9LCB7IC0xLCAyIH0sIHsgMSwgLTIgfSwgeyAxLDIgfSwgeyAyLCAtMSB9LCB7IDIsIDEgfSB9OwoKdm9pZCBkZnMoaW50IHgsIGludCB5LCBpbnQgc3RlcCkgewogICAgcGF0aFhbc3RlcCAtIDFdID0geDsKICAgIHBhdGhZW3N0ZXAgLSAxXSA9IHk7CiAgICB1c2VkW3hdW3ldID0gMTsKICAgIGlmIChzdGVwID09IHAqcSkge29rID0gMTtyZXR1cm47fQogICAgCiAgICBmb3IgKGludCBpPTA7IGk8ODsgKytpKSB7CiAgICAgICAgaW50IF94ID0geCArIGRpcltpXVswXTsKICAgICAgICBpbnQgX3kgPSB5ICsgZGlyW2ldWzFdOwogICAgICAgIGlmIChfeD49MCAmJiBfeT49MCAmJiBfeDxwICYmIF95PHEgJiYgIXVzZWRbX3hdW195XSkgewogICAgICAgICAgICBkZnMoX3gsIF95LCBzdGVwKzEpOwogICAgICAgIH0KICAgIH0KICAgIHVzZWRbeF1beV0gPSAwOwp9CmludCBtYWluKCkgewogICAgaW50IHN1bSA9IDA7CiAgICBjaW4+Pm47CiAgICB3aGlsZSAobi0tKSB7CiAgICAgICAgY2luPj5wPj5xOwogICAgICAgIG9rPTA7CiAgICAgICAgbWVtc2V0KHVzZWQsIDAsIHNpemVvZih1c2VkKSk7CiAgICAgICAgbWVtc2V0KHBhdGhYLCAwLCBzaXplb2YocGF0aFgpKTsKICAgICAgICBtZW1zZXQocGF0aFksIDAsIHNpemVvZihwYXRoWSkpOwogICAgICAgIHByaW50ZigiU2NlbmFyaW8gIyVkOlxuIiwgKytzdW0pOwogICAgICAgIGRmcygwLCAwLCAxKTsKICAgICAgICBpZiAob2sgIT0gMSkgewogICAgICAgICAgICBwcmludGYoImltcG9zc2libGVcbiIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcCAqIHE7IGkrKykgewogICAgICAgICAgICAgICAgcHJpbnRmKCIlYyVkIiwgcGF0aFlbaV0gKyAnQScsIHBhdGhYW2ldICsgMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgICAgIH0KICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==