#include <bits/extc++.h>
#define endl '\n'
typedef long long ll;
#define int ll
using namespace std;
using namespace __gnu_cxx;
using namespace __gnu_pbds;
constexpr int dx[4] = {0, 0, 1, -1}, dy[4] = {1, -1, 0, 0};
void Main() {
int n, m;
cin >> n >> m;
vector a(n + 1, vector<int>(m + 1, -1));
if (n * m & 1) {
cout << "First" << endl;
a[(n >> 1) + 1][(m >> 1) + 1] = 1;
cout << (n >> 1) + 1 << " " << (m >> 1) + 1 << " " << 1 << endl;
while (true) {
int x, y, c;
cin >> x >> y >> c;
if (a[x][y] != -1) {
cout << "Buwanle" << endl;
return;
}
for (int i = 0; i < 4; ++i) {
const int &nx = x + dx[i], &ny = y + dy[i];
if (nx <= 0 || nx > n || ny <= 0 || ny > m) {
continue;
}
if (a[nx][ny] == c) {
cout << "Buwanle" << endl;
return;
}
}
cout << n - x + 1 << " " << m - y + 1 << " " << c << endl;
a[n - x + 1][m - y + 1] = c;
}
} else {
cout << "Second" << endl;
while (true) {
int x, y, c;
cin >> x >> y >> c;
if (a[x][y] != -1) {
cout << "Buwanle" << endl;
return;
}
for (int i = 0; i < 4; ++i) {
const int &nx = x + dx[i], &ny = y + dy[i];
if (nx <= 0 || nx > n || ny <= 0 || ny > m) {
continue;
}
if (a[nx][ny] == c) {
cout << "Buwanle" << endl;
return;
}
}
cout << n - x + 1 << " " << m - y + 1 << " " << !c << endl;
a[n - x + 1][m - y + 1] = !c;
}
}
}
// #define __CP_MULTI_TEST_CASES
signed main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int t = 1;
#ifdef __CP_MULTI_TEST_CASES
cin >> t;
#endif
while (t--) {
Main();
}
return cout << flush, fflush(stdout), 0;
}