#include <cstdio>
#include <algorithm>
using namespace std;
int a[200][200];
void fnd(int x, int y) {
  printf("%d %d\n",x,y);
  fflush(stdout);
  scanf("%d",&a[x][y]);
}
bool solve(int x, int y, int sx, int sy) {
  if (x>sx) return false;
  if (y>sy) return false;
  int lx=0,rx=sx,ly=0,ry=sy;
  while (lx<rx-1 || ly<ry-1 || (x<sx && y<sy && lx<rx-1 && ly<ry-1)) {
    int hx=(lx+rx)/2;
    int hy=(ly+ry)/2;
    if (a[x+hx][y+hy]==0) fnd(x+hx,y+hy);
    if (a[x+hx][y+hy]==0) return true;
    if (a[x+hx][y+hy]<0) {
      lx=hx; ly=hy;
    } else {
      rx=hx; ry=hy;
    }
  }
  if (a[x+lx][y+ly]==0) {
    fnd(x+lx,y+ly);
    if (a[x+lx][y+ly]==0) return true;
  }
  if (a[x+rx][y+ry]==0) {
    fnd(x+rx,y+ry);
    if (a[x+rx][y+ry]==0) return true;
  }
  if (min(rx-x,sy-ly)<min(sx-lx,ry-y)) {
    if (solve(x,ly+1,rx-1,sy)) return true;
    if (solve(lx+1,y,sx,ry-1)) return true;
  } else {
    if (solve(lx+1,y,sx,ry-1)) return true;
    if (solve(x,ly+1,rx-1,sy)) return true;
  }
  return false;
}
int main() {
  solve(0,0,199,199);
  return 0;
}