#include <bits/stdc++.h>
int n, ab;
int question(int p) {
  putchar('?');
  putchar(' ');
  for (int i = 0; i < p; ++i) putchar('1');
  for (int i = p; i < n; ++i) putchar('0');
  putchar('\n');
  fflush(stdout);
  int ans;
  scanf("%d", &ans);
  return ans;
}
bool firstOne(int a, int b, int m) {
  assert(a >= 0 && b >= 0 && a <= m && b <= n - m);
  return a == 0;
}
bool firstZero(int a, int b, int m) {
  assert(a >= 0 && b >= 0 && a <= m && b <= n - m);
  return a == m;
}
template <class T>
int search(int l, int r, T pred) {
  int a, b, m;
  while (r - l > 1) {
    m = (l + r) >> 1;
    int cp = question(m) - m;
    a = (ab - cp) >> 1;
    b = (ab + cp) >> 1;
    if (pred(a, b, m))
      l = m;
    else
      r = m;
  }
  return r;
}
int main() {
  scanf("%d", &n);
  ab = question(0);
  int f = ab - question(1), ans;
  ans = search(1, n, f > 0 ? firstZero : firstOne);
  if (f > 0)
    printf("! %d %d\n", ans, 1);
  else
    printf("! %d %d\n", 1, ans);
  fflush(stdout);
  return 0;
}
