import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.PriorityQueue; import java.util.Scanner; public class Main { public static int RANGE = 100; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int y = 0, x = 0; System.out.println(x + " " + y); int min_dist = sc.nextInt(); if(min_dist == 0){ return; } { int add = 1; while(true){ if(add == 1){ final int next_plus_x = x + add; final int next_minus_x = x - add; final int next_y = y; System.out.println(next_plus_x + " " + next_y); final int next_plus_dist = sc.nextInt(); if(next_plus_dist == 0){ return; } System.out.println(next_minus_x + " " + next_y); final int next_minus_dist = sc.nextInt(); if(next_minus_dist == 0){ return; } if(min_dist < Math.min(next_plus_dist, next_minus_dist)){ break; } if(next_plus_dist < next_minus_dist){ x = next_plus_x; add = 2; min_dist = next_plus_dist; }else{ x = next_minus_x; add = -2; min_dist = next_minus_dist; } }else{ final int next_x = x + add; final int next_y = y; System.out.println(next_x + " " + next_y); final int next_dist = sc.nextInt(); if(next_dist == 0){ return; } if(next_dist < min_dist){ x = next_x; add *= 2; min_dist = next_dist; }else{ add = 1; } } } } { int add = 1; while(true){ if(add == 1){ final int next_x = x; final int next_plus_y = y + add; final int next_minus_y = y - add; System.out.println(next_x + " " + next_plus_y); final int next_plus_dist = sc.nextInt(); if(next_plus_dist == 0){ return; } System.out.println(next_x + " " + next_minus_y); final int next_minus_dist = sc.nextInt(); if(next_minus_dist == 0){ return; } if(min_dist < Math.min(next_plus_dist, next_minus_dist)){ break; } if(next_plus_dist < next_minus_dist){ y = next_plus_y; add = 2; min_dist = next_plus_dist; }else{ y = next_minus_y; add = -2; min_dist = next_minus_dist; } }else{ final int next_x = x; final int next_y = y + add; System.out.println(next_x + " " + next_y); final int next_dist = sc.nextInt(); if(next_dist == 0){ return; } if(next_dist < min_dist){ y = next_y; add *= 2; min_dist = next_dist; }else{ add = 1; } } } } } }