← Home
#include<bits/stdc++.h>
using namespace std;
int n,x;
void find(vector<int>&a,int o){
	int l,r;
	if(o&1)l=a[1],r=a[3];
	else l=a[0],r=a[2];
	while(l<=r){
		int mid=l+r>>1;
		int z=a[o];
		a[o]=mid;
		cout<<"? "<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<endl;
		cin>>x;
		if(x){
			if(o&2)r=mid-1;
			else l=mid+1;
		}
		else{
			a[o]=z;
			if(o&2)l=mid+1;
			else r=mid-1;
		}
	}
}
vector<int>a,b,oa,ob;
int main(){
	cin>>n;
	a={1,1,n,n};
	b={1,1,n,n};
	find(a,0);
	find(b,2);
	if(a[0]<=b[2]){
		cout<<"? "<<a[0]<<" "<<1<<" "<<b[2]<<" "<<n<<endl;
		cin>>x;
		if(x){
			oa={1,3,0,2};
			ob={3,1,2,0};	
		}
	}
	if(!oa.size()){
		oa={0,2,1,3};
		ob={2,0,3,1};
	}
	a={1,1,n,n};
	b={1,1,n,n};
	for(int i=0;i<4;++i)find(a,oa[i]),find(b,ob[i]);
	cout<<"! ";
	for(int i=0;i<4;++i)cout<<a[i]<<" ";
	for(int i=0;i<4;++i)cout<<b[i]<<" ";
	return 0;
}