#include <bits/stdc++.h>
using namespace std;
string s;
int n, x, y, pos[2];
map<string, int> mp;
int ask(int l, int r, char op) {
  for (int i = l - 1; i < r; i++) s[i] = op + '0';
  int x = mp[s];
  if (!x) {
    cout << "? " << s << endl;
    fflush(stdout);
    scanf("%d", &x);
    mp[s] = x;
  }
  return x;
}
void work(int l, int r, int op) {
  if (l < r) {
    int mid = (l + r) >> 1;
    int x = ask(l, mid, op);
    int y = ask(l, mid, op ^ 1);
    int t = y - x;
    int numneed = (t + mid - l + 1) >> 1;
    if (numneed == mid - l + 1) {
      pos[op] = l;
      return;
    } else if (numneed)
      work(l, mid, op);
    else
      work(mid + 1, r, op);
  } else
    pos[op] = l;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) s.push_back('0');
  x = ask(1, n, 0);
  s[n] = '1';
  y = ask(n, n, 1);
  if (x < y)
    pos[0] = n;
  else
    pos[1] = n;
  work(1, n - 1, pos[0] == 0 ? 0 : 1);
  printf("! %d %d\n", pos[0], pos[1]);
  fflush(stdout);
}
