#include #include #include using namespace std; int g[10][103][103][4][4]; int a[16][128]; int n, m, k; pair < int, int > el[4][3]; void scan(){ cin >> n >> m >> k; for ( int i = 0; i < k; ++i ){ int p, q; cin >> p >> q; a[p][q] = 1; } } int sg ( int row, int l, int step, int left, int right ){ int &x = g[row / 2][l][step][left][right], r = l + step - 1; if ( step < 2 ) return 0; if ( ( left & 1 )== 0 && a[row][l] ) return -1; if ( ( left & 2 )== 0 && a[row + 1][l] ) return -1; if ( ( right & 1 )== 0 && a[row][r] ) return -1; if ( ( right & 2 )== 0 && a[row + 1][r] ) return -1; if ( x != -1 ) return x; int t[256]; memset ( t, 0, sizeof ( t ) ); for ( int mid = l; mid + 1 <= r; ++mid ){ for ( int type = 0; type < 4; ++type ){ int cnt = 0; for ( int j = 0; j < 3; ++j ) cnt += a[row + el[type][j].first][mid + el[type][j].second]; // if ( l == 1 && r == 3 ) // cout << mid << " " << cnt << endl; if ( cnt ) continue; for ( int j = 0; j < 3; ++j ) a[row + el[type][j].first][mid + el[type][j].second] = 1; int mr = a[row][mid] + 2 * a[row + 1][mid], ml = a[row][mid + 1] + 2 * a[row + 1][mid + 1]; int t1 = sg ( row, l, mid - l + 1, left, mr ), t2 = sg ( row, mid + 1, r - mid , ml, right ); // cout << t1 << " " << t2 << endl; for ( int j = 0; j < 3; ++j ) a[row + el[type][j].first][mid + el[type][j].second] = 0; if ( t1 == -1 || t2 == -1 ) continue; t[t1 ^ t2] = 1; } } for ( int i = 0; i < 256; ++i ) if ( !t[i] ){ x = i; break; } // cout << row << " " << l << " " << r << " " << left << " " << right << "->" << x << endl; return x; } void solve(){ memset ( g, -1, sizeof ( g ) ); int res = 0; for ( int i = 0; i < n; i += 2 ){ sg ( i, 0, m, a[i][0] + 2 * a[i + 1][0], a[i][m - 1] + 2 * a[i + 1][m - 1] ); res ^= g[i / 2][0][m][a[i][0] + a[i + 1][0] * 2][a[i][m - 1] + a[i + 1][m - 1] * 2]; } if ( !res ) cout << "good\n"; else cout << "bad\n"; } int main(){ freopen ( "puzzle.in", "r", stdin ); freopen ( "puzzle.out", "w", stdout ); el[0][0] = make_pair ( 0, 0 ); el[0][1] = make_pair ( 0, 1 ); el[0][2] = make_pair ( 1, 0 ); el[1][0] = make_pair ( 0, 0 ); el[1][1] = make_pair ( 1, 1 ); el[1][2] = make_pair ( 1, 0 ); el[2][0] = make_pair ( 0, 0 ); el[2][1] = make_pair ( 1, 1 ); el[2][2] = make_pair ( 0, 1 ); el[3][0] = make_pair ( 0, 1 ); el[3][1] = make_pair ( 1, 1 ); el[3][2] = make_pair ( 1, 0 ); scan(); solve(); }