#include <bits/stdc++.h>
using namespace std;
const long long N = 1e3 + 5;
long long n, x, res, ans1, ans0;
char s1[N], s2[N], s[N];
long long query(char *s) {
  printf("? %s\n", s + 1), fflush(stdout);
  return scanf("%lld", &x), n - x;
}
bool check(long long l, long long r, long long x) {
  for (long long i = 1; i <= n; i++) s[i] = (i >= l && i <= r ? '1' : '0');
  if (x) return res - query(s) == r - l + 1;
  return query(s) - res == r - l + 1;
}
long long solve(long long x) {
  long long l = 2, r = n, ans = 0;
  while (l <= r) {
    long long mid = (l + r) / 2;
    if (!check(2, mid, x))
      ans = mid, r = mid - 1;
    else
      l = mid + 1;
  }
  return ans;
}
signed main() {
  scanf("%lld", &n), s1[1] = '1', s2[1] = '0';
  for (long long i = 2; i <= n; i++) s1[i] = s2[i] = '0';
  if (query(s1) > (res = query(s2)))
    ans1 = 1, ans0 = solve(0);
  else
    ans0 = 1, ans1 = solve(1);
  printf("! %lld %lld\n", ans0, ans1);
  return 0;
}
