/*
*/

//#pragma comment(linker, "/STACK:16777216")
#define _CRT_SECURE_NO_WARNINGS

#include <fstream>
#include <iostream>
#include <string>
#include <complex>
#include <math.h>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stdio.h>
#include <stack>
#include <algorithm>
#include <list>
#include <ctime>
#include <memory.h>
#include <assert.h>

#define y0 sdkfaslhagaklsldk
#define y1 aasdfasdfasdf
#define yn askfhwqriuperikldjk
#define j1 assdgsdgasghsf
#define tm sdfjahlfasfh
#define lr asgasgash

#define eps 1e-9
#define M_PI 3.141592653589793
#define bs 1000000007
#define bsize 512

const int N = 1000;

using namespace std;

int n, m, x, ar[N][N];

int main(){
	//freopen("route.in","r",stdin);
	//freopen("route.out","w",stdout);
	//freopen("F:/in.txt", "r", stdin);
	//freopen("F:/output.txt", "w", stdout);
	ios_base::sync_with_stdio(0);
	//cin.tie(0);
	
	int l, r;
	l = 0;
	r = 199;
	int found = 0;

	while (l < r)
	{
		int mid = l + r+1;
		mid /= 2;
		cout << mid << " " << mid << endl;
		int val;
		cin >> val;
		if (val == 0)
		{
			found = 1;
			break;
		}
		if (val>0)
			r = mid - 1;
		else
			l = mid;
	}

	int L = l;

	if (found == 0)
	{
		int l, r;
		l = L;
		r = 199;
		while (l < r)
		{
			int mid = l + r+1;
			mid /= 2;
			cout << L << " " << mid << endl;
			int val;
			cin >> val;
			if (val == 0)
			{
				found = 1;
				break;
			}
			if (val < 0)
				l = mid;
			else
				r = mid - 1;
		}
	}

	if (found == 0)
	{
		int l, r;
		l = L;
		r = 199;
		while (l < r)
		{
			int mid = l + r + 1;
			mid /= 2;
			cout << mid << " " << L << endl;
			int val;
			cin >> val;
			if (val == 0)
			{
				found = 1;
				break;
			}
			if (val < 0)
				l = mid;
			else
				r = mid - 1;
		}
	}
	
	return 0;

	cin.get(); cin.get();
	return 0;
}