#include using namespace std; int n,q; int ask(int i,int j) { printf("? %d %d %d %d\n", i+1,n,j+1,n); int a; cin>>a; assert(a>=0); return a; } pair f(int l,int r) { if(r-l==1) return {l,l}; int m=(l+r)/2; auto [min1,max1]=f(l,m); auto [min2,max2]=f(m,r); int mn=ask(min1,min2)?min2:min1; int mx=ask(max1,max2)?max1:max2; return {mn,mx}; } int main() { cin>>n>>q; auto [mn,mx]=f(0,n); printf("! %d %d %d %d\n",mn+1,mn+1,mx+1,n); }