//活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<bits/stdc++.h>
#include <iostream>
using namespace std;
#define int long long
const int N = 100000;
// int a[10] = {0};
// bool check(int x) {
// char c = '0';
// memset(a, 0, sizeof(a));
// string ss = to_string(x);
// while (ss.size() < 5)
// ss = c + ss;
// for (int i = 0; i < 5; i++) {
// a[ss[i] - '0']++;
// if (a[ss[i] - '0'] > 1)
// return 0;
// }
// return 1;
// }
int dd[N],bb[N];
signed main() {
ios::sync_with_stdio();
cin.tie(0);
cout.tie(0);
int n, q;
string s;
cin>>n;
cin>>s;
int b=0,d=0;
// 先把特别的小盆友 单独用dd存储起来
for(int i=0;i<n;i++)
{
if(s[i]!='0')
dd[d++]=i+1;
}
// 如果只有一个 那就直接输出
if(d==1)
{
for(int i=0;i<n;i++)
cout<<i+1<<" ";
return 0;
}
// 如果是奇数个的话 就需要先交换个位置 不然翻转回来 会有一个一样
if(d&1)
{
int b=dd[0];
dd[0]=dd[d/2];
dd[d/2]=b;
}
d--;
// 直接倒着输出
for(int i=0;i<n;i++)
{
if(s[i]=='1')
cout<<dd[d--]<<" ";
else
cout<<i+1<<" ";
}
return 0;
}
// 64 位输出请用 printf("%lld")
//活动地址: 牛客春招刷题训练营 - 编程打卡活动