#include #include #include #include #include #include #include #include #include #include #include using namespace std; int N, M, ap[209][209], val[209][209], s[209][209]; clock_t t1, t2; int Ask (int i, int j) { int ans; printf ("%d %d\n", i - 1, j - 1); fflush (stdout); scanf ("%d", &ans); fflush (stdout); if (ans == 0) exit (0); return ans; } int main() { //freopen ("input", "r", stdin); //freopen ("output", "w", stdout); ///scanf ("%d %d", &N, &M);fflush (stdout); //N = M = 200; N = M = 200; t1 = clock (); while (1) { t2 = clock (); if ((double) (t2 - t1) / CLOCKS_PER_SEC > 2.6) break; for (int i=1; i<=N; i++) for (int j=1; j<=M; j++) s[i][j] = s[i-1][j]+s[i][j-1]-s[i-1][j-1]+(1-ap[i][j]); int bst = 0, x, y; for (int i=1; i<=N; i++) for (int j=1; j<=M; j++) if (ap[i][j] == 0) { int curr = s[i][j], curr2 = s[N][M] - s[i - 1][M] - s[N][j - 1] + s[i - 1][j - 1]; if (curr2 < curr) curr = curr2; if (curr > bst) bst = curr, x = i, y = j; } int val = Ask (x, y); if (val == 0) return 0; if (val > 0) { for (int i=x; i<=N; i++) for (int j=y; j<=M; j++) ap[i][j] = 1; } else { for (int i=1; i<=x; i++) for (int j=1; j<=y; j++) ap[i][j] = 1; } } for (int i=1; i<=200; i++) for (int j=1; j<=200; j++) if (ap[i][j] == 0) { int val = Ask (i, j); if (val == 0) return 0; } return 0; }