#include <bits/stdc++.h>
using namespace std;
int s[101010];
int ask(int x, int y) {
  printf("? %d %d\n", x, y);
  fflush(stdout);
  scanf("%d", &x);
  return x;
}
void ok(int n) {
  int i;
  printf("! ");
  for (i = 1; i <= n; i++) printf("%d", s[i]);
  fflush(stdout);
}
int main() {
  int n, t, now, i, shd = 0, tmp, sw = 0, n1, nowi;
  scanf("%d%d", &n, &t);
  if (n == 1) {
    cout << "! " << t << endl;
    return 0;
  }
  now = t;
  if (n & 1) {
    while (1) {
      tmp = ask(2, n);
      if (abs(now - tmp) % 2 == 0) break;
      sw ^= 1;
      now = tmp;
    }
    shd = n - now;
    if (tmp > shd)
      s[1] = 1;
    else
      s[1] = 0;
    s[1] ^= sw;
    nowi = s[1] ^ sw;
    shd = s[1] ^ sw;
    sw ^= 1;
    now = tmp;
    for (i = 1; i < n; i++) {
      while (1) {
        tmp = ask(i, i + 1);
        if (abs(tmp - now) % 2 != i % 2) break;
        now = tmp;
        if (nowi)
          shd--;
        else
          shd++;
        nowi ^= 1;
        sw ^= 1;
      }
      shd = i - shd;
      n1 = (i + 1 + tmp - now) / 2;
      s[i + 1] = n1 - shd;
      shd = n1;
      s[i + 1] ^= sw;
      s[i + 1] ^= 1;
      nowi = s[i + 1] ^ sw ^ 1;
      now = tmp;
    }
    ok(n);
  } else {
    for (i = 1; i <= n; i++) {
      while (1) {
        tmp = ask(i, i);
        if (abs(now - tmp) % 2 == i % 2) break;
        now = tmp;
        sw ^= 1;
      }
      shd = i - 1 - shd;
      n1 = (i + tmp - now) / 2;
      s[i] = n1 - shd;
      shd = n1;
      s[i] ^= sw;
      s[i] ^= 1;
      now = tmp;
    }
    ok(n);
  }
  return 0;
}
