#include <bits/stdc++.h>
#define ll long long
using namespace std;
 
int main() 
{
    map<int,int>m;
	ll n,t;cin>>n>>t;
    while(t--)
    {
        ll k;cin>>k;
        ll l=1,r=n;
	    while(l<r)
	    {
	        ll mid=l+(r-l)/2;
	        ll read;
	        if(m.find(mid)!=m.end()) read=m[mid];
    	    else{
    	        cout<<"? "<<1<<" "<<mid<<endl;
    	        cout.flush();
    	        cin>>read;
    	        m[mid]=read;
    	    }
	        if(mid-read>=k)
	        {
	            r=mid;
	        }
	        else l=mid+1;
	    }
    	cout<<"! "<<l<<endl;
    	auto it=m.lower_bound(l);
    	for(auto p=it;p!=m.end();p++)
    	{
    	    p->second++;
    	}
    }
}