#include <bits/stdc++.h>   using namespace std;   const long long N = 2e5 + 100;   long long a[N];   pair<long long, long long> ask(long long l, long long r) {     cout <<  ?   << l <<     << r << endl;     long long first;     cin >> first;     if (first == -1) exit(0);     long long f;     cin >> f;     return {first, f};   }   void solve(long long l, long long r) {     if (l > r) return;     long long first, f;     tie(first, f) = ask(l, r);     long long l1 = r + 1 - f, r1 = l - 1 + f;     if (l1 <= r1) {       for (long long i = l1; i <= r1; i++) a[i] = first;       solve(l, l1 - 1);       solve(r1 + 1, r);     } else {       long long m = (l + r) / 2;       solve(l, m);       solve(m + 1, r);     }   }   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long n;     cin >> n;     solve(1, n);     cout <<  !  ;     for (long long i = 1; i <= n; i++) cout << a[i] <<    ;     cout << endl;   }   