#include <iostream>
using namespace std;
int x[50][50],K;
int solve(){
	int q=1,p=0;
	for(int i=0;i<50;i++){
		for(int j=0;j<50;j++){
			if(x[i][j]==1)p+=q;
			q*=2;q%=K;p%=K;
		}
	}
	return p;
}
int Query1(int i1,int i2,int i3,int i4){
	cout<<"? "<<i1<<' '<<i2<<' '<<i3<<' '<<i4<<endl;
	int Va;cin>>Va;
	return Va;
}
int main() {
	int H,W,N;cin>>H>>W>>N>>K;
	for(int i=0;i<50;i++){
		for(int j=0;j<50;j++){
			int L=Query1(i,j,i,j);
			x[i][j]=L;
		}
	}
	cout<<"! "<<solve()<<endl;
	return 0;
}