#include using namespace std; typedef int32_t h_int32; typedef int64_t h_int64; typedef uint32_t uh_int32; typedef uint64_t uh_int64; typedef h_int64 h_int; #define REP( i, n ) for(int i = 0; i < ( int )( n ); ++i ) #define REPR( i, n ) for(int i = ( int )( n ); i >= 0; --i) #define FOR( i, a, n ) for(int i = ( int )( a ); i < ( int )( n ); ++i ) #define FORR( i, a, n ) for(int i = ( int )( n ); i >= ( int )( a ); --i) #define VINIT( v, type, n )vector v; v.resize( n ); #define VINIT2( v, type, n, a )vector v; v.resize( n, a ); #define VCIN( v, type, n ) VINIT( v, type, n ) REP( i, n ) cin >> v[i]; #define ALL( x ) x.begin(), x.end() #define DOUT( x ) cerr << #x << " = " << x << "\n" #define COUT( x ) cout << ( x ) << "\n" #define INF 999999999 int Check( int x, int y ) { cout << x << " " << y << endl; int d; cin >> d; return d; } int f( int d_l, int d_r, bool x_fl ) { int d; int l = 0; int r = 100000; while(l - r > 1) { int mid = ( l + r ) / 2; if(x_fl) d = Check( mid, 0 ); else d = Check( 0, mid ); if( abs( d_r - d ) < abs( d_l - d ) ) { d_l = d; l = mid; } else { d_r = d; r = mid; } } d_l = Check( l, 0 ); d_r = Check( r, 0 ); return d_l < d_r ? l : r; } signed main() { ios::sync_with_stdio( false ); cin.tie( 0 ); int d_lu, d_ru, d_ld; d_lu = Check( 0, 0 ); d_ru = Check( 100000, 0 ); d_ld = Check( 0, 100000 ); int x = f( d_lu, d_ru, true ); int y = f( d_lu, d_ld, false ); cout << x << " " << y << endl; return 0; }