import sys
import random

W, H = map(int,raw_input().split())
f = []

def q( x, y ):
    global f
    sys.stdout.write( "? %d %d\n" % (x,y) )
    sys.stdout.flush()
    r = {'k':1,'o':0,'e':-1}[ sys.stdin.readline()[1] ]
    if r == 0:
        f += [x,y]
        if len(f) >= 4:
            sys.stdout.write("! %d %d %d %d\n" % tuple(f) )
            sys.stdout.flush()
            sys.exit(0)
    return r

def bs( x ):
    global H
    u, l = H, 1
    while u >= l+2:
        y = int((u+l)/2)
        r = q( x, y )
        if r == 0:
            return float(y)
        elif r > 0:
            u = y
        else:
            l = y
    return (u+l)/2.0

a = bs(1)
b = bs(W)
dydx = (b-a)/(W-1)
L1 = [ ( x, dydx*(x-1)+a ) for x in range( 2, W ) ]
L2 = [ (abs(yf-round(yf)),x,int(round(yf))) for (x,yf) in L1 ]
for _, x, y in reversed(sorted(L2)):
    q(x,y)