```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
s := scanner.Text()
n := len(s)
k := 0
for _, c := range s {
if c == 'a' {
k++
}
}
t := ""
for i := 0; i < k; i++ {
t += "a"
}
for i := 0; i < n-k; i++ {
t += "b"
}
curr := []byte(t)
ans := make([]int, n)
orig := []byte(s)
for ii := n; ii >= 1; ii-- {
i := ii - 1
p1 := make([]byte, n)
for j := 0; j < ii; j++ {
p1[j] = curr[ii-1-j]
}
for j := ii; j < n; j++ {
p1[j] = curr[j]
}
can0 := curr[i] == orig[i]
can1 := curr[0] == orig[i]
chosen := 0
if can0 {
chosen = 0
} else if can1 {
chosen = 1
} else {
fmt.Println("impossible")
return
}
ans[ii-1] = chosen
if chosen == 1 {
copy(curr, p1)
}
}
for j := 0; j < n; j++ {
if j > 0 {
fmt.Print(" ")
}
fmt.Print(ans[j])
}
fmt.Println()
}
```