from pprint import pprint import random DEBUG = False if DEBUG: n = 10**8 x_ = random.randrange(-n, n) y_ = random.randrange(-n, n) a = (x_, y_) b = (-y_, x_) o = ((a[0] + b[0]) / 2, (a[1] + b[1]) / 2) rr = (a[0] - o[0]) ** 2 + (a[1] - o[1]) ** 2 S = "" def print(Q, flush): pprint(Q) if Q[0] == "2": pprint(f"{o[0]}, {o[1]}, {rr}") return x, y = map(float, Q.split()[1:]) assert -(10**9) <= x <= 10**9 assert -(10**9) <= y <= 10**9 d = (x - o[0]) ** 2 + (y - o[1]) ** 2 pprint(f"{rr=} {d=}") global S if d == rr: S = "0" elif d > rr: S = "+" else: S = "-" def input(): return S def judge(Q): print(Q, flush=True) return input() if not DEBUG: n = int(input()) q = 74 l = 0 r = 2 * n for _ in range(q): mid = (l + r) / 2 res = judge(f"1 {mid:.9f} 0") if res[0] == "+": r = mid else: l = mid x_p = (l + r) / 2 l = -2 * n r = 0 for _ in range(q): mid = (l + r) / 2 res = judge(f"1 {mid:.9f} 0") if res[0] == "+": l = mid else: r = mid x_m = (l + r) / 2 l = 0 r = 2 * n for _ in range(q): mid = (l + r) / 2 res = judge(f"1 0 {mid:.9f}") if res[0] == "+": r = mid else: l = mid y_p = (l + r) / 2 l = -2 * n r = 0 for _ in range(q): mid = (l + r) / 2 res = judge(f"1 0 {mid:.9f}") if res[0] == "+": l = mid else: r = mid y_m = (l + r) / 2 x = (x_p + x_m) / 2 y = (y_p + y_m) / 2 r2 = x**2 + y**2 judge(f"2 {x:.9f} {y:.9f} {r2:.9f}")