#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll>PII;
const int N = 2e5 + 10;
const int MOD = 998244353;
const int INF = 0X3F3F3F3F;
const int dx[] = {-1, 1, 0, 0, -1, -1, +1, +1};
const int dy[] = {0, 0, -1, 1, -1, +1, -1, +1};
const int M = 1e6 + 10;
int a[N];//记录独特的
int fa[N];//记录自己的座位
int main()
{
int n;
string s;
cin >> n >> s;
s = ' ' + s;
int k = 0;
for(int i = 1; i <= n; i ++)
{
if(s[i] == '1') a[++ k] = i;//找出来独特的
else{
fa[i] = i;
}
}
if(k == 1)
{
for(int i = 1; i <= n; i ++) cout << i << " ";
}
else {
if(k & 1)//是奇数取出前三个,后面的两两交换
{
int o1 = a[1], o2 = a[2], o3 = a[3];
fa[o1] = o2, fa[o2] = o3, fa[o3] = o1;
for(int i = 4; i <= k; i += 2)
{
int x = a[i], y = a[i + 1];
fa[x] = y;
fa[y] = x;
}
}
else {//偶数两两交换即可
for(int i = 1; i <= k; i += 2)
{
int x = a[i], y = a[i + 1];
fa[x] = y;
fa[y] = x;
}
}
for(int i = 1; i <= n; i ++)
{
cout << fa[i] << " ";//统一输出
}
}
}