#include namespace { #pragma GCC diagnostic ignored "-Wunused-function" #include #pragma GCC diagnostic warning "-Wunused-function" using namespace std; using namespace atcoder; #define rep(i,n) for(int i = 0; i < (int)(n); i++) #define rrep(i,n) for(int i = (int)(n) - 1; i >= 0; i--) #define all(x) begin(x), end(x) #define rall(x) rbegin(x), rend(x) template bool chmax(T& a, const T& b) { if (a < b) { a = b; return true; } else return false; } template bool chmin(T& a, const T& b) { if (b < a) { a = b; return true; } else return false; } using ll = long long; using P = pair; using VI = vector; using VVI = vector; using VL = vector; using VVL = vector; } int main() { ios::sync_with_stdio(false); cin.tie(0); int x, y; cin >> x >> y; bool my_turn = !(min(x, y) + 1 == max(x, y) && min(x, y) % 2 == 1); cout << (my_turn ? "First" : "Second") << endl; while(true) { if (my_turn) { if (x == y) { cout << "B" << endl; x = 0, y = 0; } else if (x < y) { int ny = x % 2 == 0 ? x - 1 : x + 1; cout << "A 2 " << y - ny << endl; y = ny; } else { int nx = y % 2 == 0 ? y - 1 : y + 1; cout << "A 1 " << x - nx << endl; x = nx; } } else { string s; cin >> s; if (s == "C" || s == "D") break; else if (s == "A") { int i, v; cin >> i >> v; if (i == 1) x -= v; else y -= v; } else { assert(false); } } my_turn ^= 1; } }