#include <bits/stdc++.h>
using namespace std;
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-(r-l+1)/2 : r-(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==(pr-pl+1)*2)
return uPrvoj(pl, pr);
return uPrvoj(pr+1, r);
}
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=0;
ans.second=uPrvoj(1, n-1);
cout<<"!"<<ans.first<<" "<<ans.second<<endl;
}
return 0;
}