#include<cstdio>
#include<random>
#include<time.h>
#include<iostream>
#include<fstream>
#include <chrono>
using namespace std; using ll = long long; inline int read();
const int M = 500016, MOD = 1000000007;

ifstream din("input");
ofstream sout("score.txt");

void fail(string message)
{
	cout << message << endl;
	sout << 0 << endl;
	exit(0);
}
void suc()
{
	sout << 100 << endl;
	exit(0);
}
int main(void)
{
	long long n;
    din >> n ;
    cout<< n <<endl;
    
    unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
	mt19937 rand_num(seed);
	uniform_int_distribution<long long> dist(0, 1e18); 
    long long ans=dist(rand_num)%n+1;

	int cnt = 0;
    long long sum=0;
	while(1)
	{
		long long l,r;
        char op;
        if(!(cin>>op) || op!='!' && op!='?'){
            fail("查询格式错误!");
        }
        if(op=='?'){
            if(!(cin>>l) || !(cin>>r))
            {
                fail("查询格式错误!");
            }
            else if(!(1<=l && l<=r && r<=n)){
                fail("查询数据范围错误！");
            }
            else if(l<=ans && ans<=r)
            {
                cout << 1 << endl;
            }
            else if(ans<l || ans>r)
            {
                cout << 0 << endl;
            }
            sum+=r-l+1;
            
        }else if(op=='!'){
            long long res;
            cin>>res;
            if(res==ans)suc();
            else fail("猜错啦");
            break;
        }
		
        /*if(sum>n){
            fail("使用的书本总数超过了n");
            break;
        }*/

		++cnt;
		if(cnt == 80)
		{
			fail("最多只能查询80次");
			break;
		}

	}


    return 0;
}

