import sys input = sys.stdin.readline Lmin=0 Lmax=10**6 Rmin=0 Rmax=10**6 ANS=[] def calc(lmin,lmax,rmin,rmax): print("?",lmin,lmax,rmin,rmax,flush=True) ret=int(input()) if ret==0: return if lmax>lmin: lmid=(lmax+lmin)//2 calc(lmin,lmid,rmin,rmax) calc(lmid+1,lmax,rmin,rmax) else: if rmax>rmin: rmid=(rmax+rmin)//2 calc(lmin,lmax,rmin,rmid) calc(lmin,lmax,rmid+1,rmax) else: ANS.append((lmin,rmin)) calc(Lmin,Lmax,Rmin,Rmax) print("!",len(ANS),flush=True) for x,y in ANS: print(x,y,flush=True)