w, h = list(map(int, input().split(" ")))

p1 = [1, h]
p2 = [1, 1]
horizon1 = None
horizon2 = None

import sys
def binary_search(x):
    p1 = [x, h]
    p2 = [x, 1]
    while True:
        p_new = [x, round((p1[1] + p2[1])/2)]
        print(f"? {p_new[0]} {p_new[1]}", flush=True)
        input_new = input()
        # print(f"? {p1[0]} {p1[1]}", flush=True)
        # input()
        # sys.stderr.write(f"{p1}, {p2}, {p_new}")

        if input_new == "horizon":
            return p_new
        elif (p_new == p1 or p_new == p2):
            sys.stderr.write(f">:(\n")
            return [x, (p1[1] + p2[1])/2]
        elif input_new == "sky":
            p1 = p_new
        elif input_new  == "sea":
            p2 = p_new

def is_integers(p):
    if (round(p[0]) == p[0] and round(p[1]) == p[1]):
        return True
    else:
        return False

def get_coefficients(points):
    a1, b1 = (len(points), sum(p[0] for p in points))
    a2, b2 = (sum(p[0] for p in points), sum(p[0]**2 for p in points))

    c1 = sum(p[1] for p in points)
    c2 = sum(p[0]*p[1] for p in points)

    # Cramers rule
    x = (c1*b2 - b1*c2) / (a1*b2 - b1*a2)
    y = (a1*c2 - c1*a2) / (a1*b2 - b1*a2)

    return y, x

points = []
points.append(binary_search(1))
points.append(binary_search(w))
horizon_list = []

for p in points:
    if is_integers(p):
        horizon_list.append(p)

while (len(horizon_list) < 2):
    # Schat a en b zo goed mogelijk: y = ax + b
    a, b = get_coefficients(points)

    x = min([x for x in range(1,w+1) if x not in [p[0] for p in points]],
             key=lambda x: abs(a*x + b - round(a*x + b)))

    p_new = [x, round(a*x + b)]
    print(f"? {p_new[0]} {p_new[1]}", flush=True)
    input_new = input()

    if input_new == "sky":
        points.append([x, round(a*x + b) - 0.5])
    elif input_new  == "sea":
        points.append([x, round(a*x + b) + 0.5])
    elif input_new == "horizon":
        points.append(p_new)
        horizon_list.append(p_new)


print(f"! {horizon_list[0][0]} {horizon_list[0][1]} {horizon_list[1][0]} {horizon_list[1][1]}")
# print(count)
