#include<iostream>
#include<string.h>
using namespace std;
int sum[200005];
int main(){
memset(sum,-1,sizeof sum);
int n,t,k;
cin>>n>>t;
while(t--){
cin>>k;
int l=1,r=n;
int x;
while(l<r){
int mid=l+r>>1;
if(sum[mid]==-1) {
cout<<"? 1 "<<mid<<endl;
cin>>sum[mid];
}
int s=mid-sum[mid];
if(s<k) l=mid+1;
else r=mid;
}
printf("! %d\n",l);
for(int i=l;i<=n;i++) if(sum[i]!=-1) sum[i]++;
}
}