# 这题题干写的混乱的飞起看半天才看懂是个啥意思
n = int(input())
s = input()
# 最后一位必须是 1,否则永远构不成完整排列 → 直接无解
if s[-1] == "0":
print(-1)
else:
result = []
last = 0 # 上一个 1 所在的“数字边界”,初始是 0
# 遍历每一位 i(0 开始)
for i in range(n):
# 只有遇到 s[i] == 1 时才开始填数
if s[i] == "1":
# 倒序填入:从 i+1 往 last+1 填
# 作用:把两个 1 之间的所有数字一次性倒序塞进去
for num in range(i + 1, last, -1):
# range(大, 小, -1) 专门用来从大往小倒序遍历。从 2 开始 → 每次减 1 → 直到 > 0 停止
result.append(num)
# 更新边界:下一次从这里开始
last = i + 1
# 输出答案
print(*result)

京公网安备 11010502036488号