import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        String s = sc.next();

        int first = -1;
        int last = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '0') a[i] = i + 1;
            else {
			  	// 首先第一次时先把first和last都更新到第一个不是0的位置 
                if (first == -1) {
                    first = i;
                    last = i;
                } else {
				  	// 先把上一次last所在位置(对于当前位置上的1来说的前一个1所在的位置)上的数进行更新
                    a[last] = i + 1;  
                    last = i;   // 然后再把last移动到当前的这个1所在的位置
                }
            }
        }
		// 因为最后一次循环后的操作是last = i; 并未更新a[last],循环到最后的1时需要和第一个1连接起来
	  	// 想象为一个圈,前面已经更新的都是用自己后面的那个1所在的位置来更新自己
	  	// 因此最后这个值应该用第一个1所在的位置来更新,即first处,因为first只有在第一次找到1时才进行了更新
        a[last] = first + 1;

        for (int num : a) {
            System.out.print(num + " ");
        }

        sc.close();
    }
}