// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#define int long long
using namespace std;
int a[1010][1002];
void solve(){
// 这题应该也认识我 好像周赛还是小白赛出过
int n;
string s;
cin>>n>>s;
// 如果最后一项是0 如果前面有1那就矛盾了 输出-1
if(s[n-1]=='0'){
cout<<"-1";
return ;
}
vector<int>a;
for(int i=1;i<=n;i++){
a.emplace_back(i);
}
for(int i=0;i<n;i++){
if(s[i]=='0'){
// 出现0 说明不能构造成排列 交换
swap(a[i],a[i+1]);
}
}
for(auto x:a){
cout<<x<<" ";
}
}
signed main(){
int T=1;
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
// cin>>T;
while(T--){
solve();
}
return 0;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动