#include <bits/stdc++.h>
using namespace std;
char buf[1 << 15], *p1 = buf, *p2 = buf;
inline long long read() {
  char ch;
  bool flag = 0;
  long long res;
  while (!isdigit(
      ch = (p1 == p2 &&
                    (p2 = (p1 = buf) + fread(buf, 1, 1 << 15, stdin), p1 == p2)
                ? EOF
                : *p1++)))
    (ch == '-') && (flag = true);
  for (res = ch - '0'; isdigit(
           ch = (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 15, stdin),
                             p1 == p2)
                     ? EOF
                     : *p1++));
       res = res * 10ll + ch - '0')
    ;
  (flag) && (res = -res);
  return res;
}
inline void write(long long x) {
  if (x < 0) x = ~x + 1ll, putchar('-');
  if (x > 9) write(x / 10ll);
  putchar(x % 10ll + '0');
}
void pf(int l, int len) {
  printf("? ");
  for (register int i = (1); i <= (len); i++) {
    if (i <= l)
      printf("1");
    else
      printf("0");
  }
  puts("");
  fflush(stdout);
}
void solve() {
  int n;
  cin >> n;
  pf(0, n);
  int pre;
  cin >> pre;
  int plen = n / 2;
  bool flag = true;
  long long x;
  int l = 1, r = n - 1, ans = 1;
  int cnt = 1;
  while (l <= r) {
    int mid = (l + r) >> 1;
    pf(mid, n);
    fflush(stdout);
    cnt++;
    if (cnt >= 15)
      while (1)
        ;
    cin >> x;
    if (abs(x - pre) == mid) {
      ans = mid;
      l = mid + 1;
    } else
      r = mid - 1;
  }
  int pos1 = ans, pos0 = ans + 1;
  pf(1, n);
  fflush(stdout);
  cin >> x;
  if (x > pre) swap(pos1, pos0);
  printf("! %d %d", pos0, pos1);
  fflush(stdout);
}
int main() { solve(); }
