import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
    InputStream is;
    PrintWriter out;
    String INPUT = "" ;
    boolean local = false;
    int inf=0x7FFFFFFF;
    int MOD=(int)(1e9+7);
    double eps=1e-5;
    double PI=Math.acos(-1);
    void solve() {
        long maxn=nl();
        long L=1,R=maxn,ans=-1;
        while (L<=R){
            long mid=(L+R)/2;
            if(ask(1,1,mid,maxn)<1)L=mid+1;
            else{
                R=mid-1;
                ans=mid;
            }
        }
        if(ask(1,1,ans,maxn)==1 && ask(ans+1,1,maxn,maxn)==1){
            Yts1999 a1=gao(1,1,ans,maxn);
            Yts1999 a2=gao(ans+1,1,maxn,maxn);
            answer(a1,a2);
        }else{
            L=1;R=maxn;ans=-1;
            while (L<=R){
                long mid=(L+R)/2;
                if(ask(1,1,maxn,mid)<1)L=mid+1;
                else{
                    R=mid-1;
                    ans=mid;
                }
            }
            Yts1999 a1=gao(1,1,maxn,ans);
            Yts1999 a2=gao(1,ans+1,maxn,maxn);
            answer(a1,a2);
        }
    }
    void answer(Yts1999 a1,Yts1999 a2){
        out.print("!");
        a1.print();
        a2.print();
        out.flush();
    }
    int ask(long a,long b,long c,long d){
        out.printf("? %d %d %d %d",a,b,c,d);
        out.println();
        out.flush();
        return ni();
    }
    Yts1999 gao(long x1,long x2,long y1,long y2){
        long a1=0,a2=0,a3=0,a4=0;
        long L,R;
        L=x1;R=y1;
        while(L<=R){
            long mid=(L+R)/2;
            if(ask(mid,x2,y1,y2)==1){
                a1=mid;
                L=mid+1;
            }else R=mid-1;
        }
        L=x1;R=y1;
        while(L<=R){
            long mid=(L+R)/2;
            if(ask(x1,x2,mid,y2)==1){
                a3=mid;
                R=mid-1;
            }else L=mid+1;
        }
        L=x2;R=y2;
        while(L<=R){
            long mid=(L+R)/2;
            if(ask(x1,mid,y1,y2)==1){
                a2=mid;
               ... What is the time complexity of the previous code?