#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
template <typename T>
using ordered_set = tree<T, null_type,less<T>, rb_tree_tag,tree_order_statistics_node_update>;
#define endl '\n'
#define fi first
#define se second
#define pb push_back
#define mpr make_pair
#define sz(a) a.size()
#define all(a) a.begin(),a.end()
#define ms(a,n) memset(a , n , sizeof(a))
#define FOR(i,a,b) for(int i = a ; i <= b ;i++)
#define RFOR(i,a,b) for(int i = b ; i >= a ; i--)
#define fact_io() ios::sync_with_stdio(NULL);cout.tie(NULL);
#define sz(a) a.size()
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ll,ll>pl;
typedef vector<ll>vll;
typedef vector<int>vii;
typedef pair<int,int>pi;
const int MOD = 1e9 + 7;
inline ll gcd(ll a , ll b) {return b == 0 ? a : gcd(b , a % b);}
inline ll lcm(ll a , ll b) {return a / gcd(a , b) * b ;}
struct node
{
int x , y , cnt;
};
int a[15][15];
int dx[] = {1 , 0 , 0};
int dy[] = {0 , 1 , -1};
int BFS(int s , int t, int x , int y)
{
queue<node>q;
ms(a , 0);
q.push({s , t , 0});
a[s][t] = 1;
while(!q.empty())
{
node tmp = q.front();
q.pop();
int i = tmp.x , j = tmp.y , cnt = tmp.cnt;
if(i == x && j == y)
{
return cnt;
}
if(i >= 5)
{
for(int k = 0 ; k < 3 ; k++)
{
int i1 = i + dx[k];
int j1 = j + dy[k];
if(i1 < 0 || j1 < 0 || i1 > 9 || j1 > 8 || a[i1][j1] == 1) continue;
a[i1][j1] = 1;
q.push({i1 , j1 , cnt + 1});
}
}
else
{
q.push({i + 1 , j , cnt + 1});
}
}
return -1;
}
int main()
{
ios::sync_with_stdio(NULL);cout.tie(NULL);cin.tie(NULL);
int x , y ; cin >> x>> y;
int b[6];
b[1] = BFS(3 , 0 , x , y);
b[2] = BFS(3 , 2 , x , y);
b[3] = BFS(3 , 4 , x , y);
b[4] = BFS(3 , 6 , x , y);
b[5] = BFS(3 , 8 , x , y);
int ans = 100;
char c;
for(int i = 1 ; i <= 5 ; i++)
{
if(b[i] < ans && b[i] != -1)
{
ans = b[i];
c = 'A' + i - 1;
}
}
if(ans == 100) cout << -1;
else
{
cout << ans << endl;
cout << c;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KdXNpbmcgb3JkZXJlZF9zZXQgPSB0cmVlPFQsIG51bGxfdHlwZSxsZXNzPFQ+LCByYl90cmVlX3RhZyx0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+OwoKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wciBtYWtlX3BhaXIKI2RlZmluZSBzeihhKSBhLnNpemUoKQojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksYS5lbmQoKQojZGVmaW5lIG1zKGEsbikgbWVtc2V0KGEgLCBuICwgc2l6ZW9mKGEpKQojZGVmaW5lIEZPUihpLGEsYikgZm9yKGludCBpID0gYSA7IGkgPD0gYiA7aSsrKQojZGVmaW5lIFJGT1IoaSxhLGIpIGZvcihpbnQgaSA9IGIgOyBpID49IGEgOyBpLS0pCiNkZWZpbmUgZmFjdF9pbygpIGlvczo6c3luY193aXRoX3N0ZGlvKE5VTEwpO2NvdXQudGllKE5VTEwpOwojZGVmaW5lIHN6KGEpIGEuc2l6ZSgpCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+cGw7CnR5cGVkZWYgdmVjdG9yPGxsPnZsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PnZpaTsKdHlwZWRlZiBwYWlyPGludCxpbnQ+cGk7CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3OwoKaW5saW5lIGxsIGdjZChsbCBhICwgbGwgYikge3JldHVybiBiID09IDAgPyBhIDogZ2NkKGIgLCBhICUgYik7fQppbmxpbmUgbGwgbGNtKGxsIGEgLCBsbCBiKSB7cmV0dXJuIGEgLyBnY2QoYSAsIGIpICogYiA7fQpzdHJ1Y3Qgbm9kZQp7CglpbnQgeCAsIHkgLCBjbnQ7Cn07CmludCBhWzE1XVsxNV07CmludCBkeFtdID0gezEgLCAwICwgMH07CmludCBkeVtdID0gezAgLCAxICwgLTF9OwppbnQgQkZTKGludCBzICwgaW50IHQsIGludCB4ICwgaW50IHkpCnsKCXF1ZXVlPG5vZGU+cTsKCW1zKGEgLCAwKTsKCXEucHVzaCh7cyAsIHQgLCAwfSk7CglhW3NdW3RdID0gMTsKCXdoaWxlKCFxLmVtcHR5KCkpCgl7CgkJbm9kZSB0bXAgPSBxLmZyb250KCk7CgkJcS5wb3AoKTsKCQlpbnQgaSA9IHRtcC54ICwgaiA9IHRtcC55ICwgY250ID0gdG1wLmNudDsKCQlpZihpID09IHggJiYgaiA9PSB5KQoJCXsKCQkJcmV0dXJuIGNudDsKCQl9CgkJaWYoaSA+PSA1KQoJCXsKCQkJZm9yKGludCBrID0gMCA7IGsgPCAzIDsgaysrKQoJCQl7CgkJCQlpbnQgaTEgPSBpICsgZHhba107CgkJCQlpbnQgajEgPSBqICsgZHlba107CgkJCQlpZihpMSA8IDAgfHwgajEgPCAwIHx8IGkxID4gOSB8fCBqMSA+IDggfHwgYVtpMV1bajFdID09IDEpIGNvbnRpbnVlOwoJCQkJYVtpMV1bajFdID0gMTsKCQkJCXEucHVzaCh7aTEgLCBqMSAsIGNudCArIDF9KTsKCQkJfQoJCX0KCQllbHNlCgkJewoJCQlxLnB1c2goe2kgKyAxICwgaiAsIGNudCArIDF9KTsKCQl9Cgl9CglyZXR1cm4gLTE7Cn0KaW50IG1haW4oKQp7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhOVUxMKTtjb3V0LnRpZShOVUxMKTtjaW4udGllKE5VTEwpOwoJaW50IHggLCB5IDsgY2luID4+IHg+PiB5OwoJaW50IGJbNl07CgliWzFdID0gQkZTKDMgLCAwICwgeCAsIHkpOwoJYlsyXSA9IEJGUygzICwgMiAsIHggLCB5KTsKCWJbM10gPSBCRlMoMyAsIDQgLCB4ICwgeSk7CgliWzRdID0gQkZTKDMgLCA2ICwgeCAsIHkpOwoJYls1XSA9IEJGUygzICwgOCAsIHggLCB5KTsKCWludCBhbnMgPSAxMDA7CgljaGFyIGM7Cglmb3IoaW50IGkgPSAxIDsgaSA8PSA1IDsgaSsrKQoJewoJCWlmKGJbaV0gPCBhbnMgJiYgYltpXSAhPSAtMSkKCQl7CgkJCWFucyA9IGJbaV07CgkJCWMgPSAnQScgKyBpIC0gMTsKCQl9Cgl9CglpZihhbnMgPT0gMTAwKSBjb3V0IDw8IC0xOwoJZWxzZQoJewoJCWNvdXQgPDwgYW5zIDw8IGVuZGw7CgkJY291dCA8PCBjOwoJfQoJcmV0dXJuICAwOwp9