#include <bits/stdc++.h>
using namespace std;
vector<int> zp;
int zer;
int one;
int n;
int allz;
int q() {
  cout << '?' << ' ';
  for (int i = 0; i < n; i++) {
    cout << zp[i];
  }
  cout << endl;
  int x;
  cin >> x;
  return x;
}
void get(int bg, int ed, int W) {
  if ((zer != -1) and (one != -1)) {
    return;
  }
  int cur = W;
  int L = ed - bg;
  int d = cur - allz;
  if (d == -L) {
    one = bg;
    return;
  }
  if (d == L) {
    zer = bg;
    return;
  }
  int mid = (bg + ed) / 2;
  for (int i = mid; i < ed; i++) {
    zp[i] = 0;
  }
  int D = q();
  get(bg, mid, D);
  for (int i = mid; i < ed; i++) {
    zp[i] = 1;
  }
  if ((zer != -1) and (one != -1)) {
    return;
  }
  for (int i = bg; i < mid; i++) {
    zp[i] = 0;
  }
  get(mid, ed, W - D + allz);
  for (int i = bg; i < mid; i++) {
    zp[i] = 1;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  zp.resize(n);
  zer = -1;
  one = -1;
  allz = q();
  for (int i = 0; i < n; i++) {
    zp[i] = 1;
  }
  get(0, n, n - allz);
  cout << "! " << zer + 1 << ' ' << one + 1 << endl;
  return 0;
}
