#include <bits/stdc++.h>
using namespace std;
const int N = 500050;
const int inf = 0x3f3f3f3f;
const long long llinf = 0x3f3f3f3f3f3f3f3f;
const int mod = 998244353;
const int MOD = 1e9 + 7;
const double PI = acos(-1.0);
clock_t TIME__START, TIME__END;
void program_end() {}
int n;
int l, r, lst, tot;
string s;
int pos0, pos1;
int ask(string s) {
  int ret;
  cout << "? " << s << endl;
  cin >> ret;
  return ret;
}
void solve2(int l, int r) {
  string ss = s;
  ss[l] = '1';
  assert(tot < 15);
  tot++;
  int now = ask(ss);
  int c = now - lst;
  if (c < 0)
    pos1 = l + 1, pos0 = r + 1;
  else
    pos1 = r + 1, pos0 = l + 1;
  cout << "! " << pos0 << " " << pos1 << endl;
  program_end();
  exit(0);
}
void work(int l, int r) {
  if ((r - l + 1) == 2) {
    solve2(l, r);
  } else if ((r - l + 1) == 3) {
    string ss = s;
    ss[l] = ss[l + 1] = '1';
    assert(tot < 15);
    tot++;
    int now = ask(ss);
    int c = now - lst;
    if (abs(c) == 2) {
      if (c < 0)
        pos1 = l + 1, pos0 = r + 1;
      else
        pos0 = l + 1, pos1 = r + 1;
      cout << "! " << pos0 << ' ' << pos1 << endl;
    } else
      solve2(l, l + 1);
    program_end();
    exit(0);
  }
  int mid = (l + r) >> 1;
  string ss = s;
  for (int i = l; i <= mid; ++i) ss[i] = '1';
  assert(tot < 15);
  tot++;
  int now = ask(ss);
  int c = now - lst;
  if (abs(c) != mid - l + 1)
    work(l, mid + 1);
  else
    work(mid, r);
}
inline void solve() {
  scanf("%d", &n);
  l = 0, r = n - 1;
  for (int i = l; i <= r; ++i) s += "0";
  int now = ask(s);
  tot++;
  lst = now;
  work(l, r);
}
int main() {
  TIME__START = clock();
  int Test = 1;
  while (Test--) {
    solve();
  }
  TIME__END = clock();
  program_end();
  return 0;
}
