#include <cstdio>

using namespace std;

int Map[205][205];
bool U[205][205];

int get(int x, int y) {
    if (U[x][y])
        return Map[x][y];

    int val;
    printf("%d %d\n", x, y);
    fflush(stdout);

    scanf("%d", &val);
    Map[x][y] = val;
    U[x][y] = true;

    return val;
}

int solve(int x1, int y1, int x2, int y2) {
    if (x1 > x2 || y1 > y2)
        return false;

    int xm = (x1 + x2)/2;
    int ym = (y1 + y2)/2;

    if (get(xm, ym) == 0)
        return true;
    else if (get(xm, ym) < 0) {
        if (!solve(xm + 1, y1, x2, y2))
            return solve(x1, ym, xm, y2);
        else
            return true;
    } else if (get(xm, ym) > 0) {
        if (!solve(x1, y1, x2, ym))
            return solve(x1, ym + 1, xm, y2);
        else
            return true;
    }
    
    return false;
}

int main() {

    solve(0, 0, 199, 199);

    return 0;
}