#include <bits/stdc++.h>
using namespace std;
char a[1111];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) a[i] = '0';
  a[n] = '\0';
  printf("? %s\n", a);
  fflush(stdout);
  int now1, now2;
  cin >> now1;
  a[0] = '1';
  printf("? %s\n", a);
  fflush(stdout);
  cin >> now2;
  a[0] = '0';
  if (now1 > now2) {
    int flag = 0;
    int z = 0, y = n - 1;
    for (;;) {
      if (z == y) {
        printf("! %d 1\n", z + 1);
        fflush(stdout);
        return 0;
      }
      int mid = (z + y) >> 1;
      for (int i = 0; i < n; i++)
        if (i <= mid || i > y) a[i] = a[i] == '1' ? '0' : '1';
      printf("? %s\n", a);
      fflush(stdout);
      cin >> now2;
      int tmp = (now1 + now2 - n + (y - mid)) >> 1;
      now1 = now2;
      if (flag == 0) {
        if (y - mid - tmp > 0)
          z = mid + 1;
        else {
          flag ^= 1;
          y = mid;
        }
      } else {
        if (tmp > 0)
          z = mid + 1;
        else {
          flag ^= 1;
          y = mid;
        }
      }
    }
  } else {
    int flag = 0;
    int z = 0, y = n - 1;
    for (;;) {
      if (z == y) {
        printf("! 1 %d\n", z + 1);
        fflush(stdout);
        return 0;
      }
      int mid = (z + y) >> 1;
      for (int i = 0; i < n; i++)
        if (i <= mid || i > y) a[i] = a[i] == '1' ? '0' : '1';
      printf("? %s\n", a);
      fflush(stdout);
      cin >> now2;
      int tmp = (now1 + now2 - n + (y - mid)) >> 1;
      now1 = now2;
      if (flag == 0) {
        if (tmp > 0)
          z = mid + 1;
        else {
          flag ^= 1;
          y = mid;
        }
      } else {
        if (y - mid - tmp > 0)
          z = mid + 1;
        else {
          flag ^= 1;
          y = mid;
        }
      }
    }
  }
  return 0;
}
