#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<char> s;
pair<int, int> ans={-1,-1};
int n;
int uPrvoj(int l, int r){
if(l==r){
return l;
}
int pl=l, pr=((r+l-1)%2==0) ? (r+l-1)/2 : (r+l)/2;
for(int i=pl;i<=pr;i++){
s[i]='1';
}
cout<<"?";
for(int i=0;i<n;i++){
cout<<s[i];
}
cout<<endl;
int k;
cin>>k;
for(int i=pl;i<=pr;i++){
s[i]='0';
}
if(k%2==0)
return uPrvoj(pr+1, r);
return uPrvoj(pl, pr);
}
int main(){
cin>>n;
s.resize(n);
for(int i=0;i<n;i++){
s[i]='0';
}
if(n<=30){
for(int i=0;i<n;i++){
s[i]='1';
cout<<"?";
for(int j=0;j<n;j++)
cout<<s[j];
int k;
cout<<endl;
cin>>k;
if(k==1){
if(ans.first==-1)
ans.first=i;
else
ans.second=i;
}
s[i]='0';
if(ans.first!=-1 && ans.second!=-1){
cout<<"!"<<ans.first<<" "<<ans.second<<endl;
return 0;
}
}
}
else{
ans.first=uPrvoj(0,(n-1)/2);
ans.second=uPrvoj((n-1)/2+1, n-1);
cout<<"!"<<ans.first<<" "<<ans.second<<endl;
}
return 0;
}