#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <utility>
#include <queue>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;

#define DMAX 201
#define DMAX2 21
#define MOD 1999999973
#define ll long long
#define ull unsigned long long

int N = 4, grid[DMAX][DMAX];

void find_0(int sr, int sc, int fr, int fc){
    int r[8] = {sr, fr / 2, fr / 2 + 1, fr    , sr        , fr / 2, fr / 2 + 1, fr};
    int c[8] = {sr, fc / 2, sc        , fc / 2, fc / 2 + 1, fc    , fc / 2 + 1, fc};
    int v = -1;

    for (int i = 0; i < 4; ++i) {
        printf("%d %d\n", r[i * 2 + 1], c[i * 2 + 1]);
        fflush(stdout);
        scanf("%d", &v);
        if (v == 0) return;
        else if ( v > 0 )
            return find_0(r[i * 2], c[i * 2], r[i * 2 + 1], c[i * 2 + 1]);
    }
}

int main() {
//    freopen("input.txt", "r", stdin);
//    freopen("output.txt", "w", stdout);

    find_0(0, 0, N - 1, N - 1);

    return 0;
}