import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int left = -100; int right = 101; int ans1 = -100; while(left + 1 < right) { int p1 = (2 * left + right) / 3; int p2 = (left + 2 * right) / 3; System.out.println("?" + " " + p1 + " " + 0 + " " + 0); int t1 = sc.nextInt(); System.out.flush(); System.out.println("?" + " " + p2 + " " + 0 + " " + 0); int t2 = sc.nextInt(); System.out.flush(); if(t1 >= t2) { ans1 = p1; if(left == p1) break; left = p1; } else { right = p2; ans1 = p2; } } left = -100; right = 101; int ans2 = -100; while(left + 1 < right) { int p1 = (2 * left + right) / 3; int p2 = (left + 2 * right) / 3; System.out.println("?" + " " + 0 + " " + p1 + " " + 0); int t1 = sc.nextInt(); System.out.flush(); System.out.println("?" + " " + 0 + " " + p2 + " " + 0); int t2 = sc.nextInt(); System.out.flush(); if(t1 >= t2) { ans1 = p1; if(left == p1) break; left = p1; } else { right = p2; ans1 = p2; } } left = -100; right = 101; int ans3 = -100; while(left + 1 < right) { int p1 = (2 * left + right) / 3; int p2 = (left + 2 * right) / 3; System.out.println("?" + " " + 0 + " " + 0 + " " + p1); int t1 = sc.nextInt(); System.out.flush(); System.out.println("?" + " " + 0 + " " + 0 + " " + p2); int t2 = sc.nextInt(); System.out.flush(); if(t1 >= t2) { ans1 = p1; if(left == p1) break; left = p1; } else { right = p2; ans1 = p2; } } System.out.println("!" + " " + ans1 + " " + ans2 + " " + ans3); System.out.flush(); System.exit(0); } }