Goran wraca do zdrowia po operacji kolana i eksperymentuje z kartą inteligentną służącą do przechowywania kluczy kryptograficznych. W tym zadaniu klucz jest ciągiem bitów długości $3n$, gdzie $n$ jest dodatnią liczbą całkowitą. Poszczególne bity klucza są indeksowane liczbami całkowitymi od $1$ do $3n$, od lewej do prawej. Waga klucza to liczba par różnych sąsiednich bitów powiększona o jeden. Na przykład waga klucza „000” wynosi $1$, a waga klucza „011010100” wynosi $7$.
Odkrył, że może modyfikować klucz, przepuszczając małe impulsy elektryczne przez obwody karty. W szczególności może niezawodnie wykonać następującą operację: wybrać dowolne dwa sąsiednie bity klucza i odwrócić oba. Na przykład jedna operacja może zmienić klucz „000” na „110”.
Mając dany klucz długości $3n$, znajdź dowolny ciąg co najwyżej $n$ operacji, który przekształca go w klucz o wadze co najmniej $2n$. Możesz założyć, że rozwiązanie zawsze istnieje.
Wejście
Pierwszy wiersz zawiera napis złożony z cyfr „0” i „1” — początkowy klucz. Długość klucza wynosi $3n$, gdzie $n$ jest dodatnią liczbą całkowitą spełniającą $1 \le n \le 100\,000$.
Wyjście
Pierwszy wiersz powinien zawierać liczbę całkowitą $m$, gdzie $0 \le m \le n$ — liczbę operacji w twoim rozwiązaniu. Następny wiersz powinien zawierać $m$ liczb całkowitych $a_1,a_2,\ldots,a_m$ opisujących rozwiązanie. Liczba $a_k$ jest indeksem lewego z dwóch bitów odwracanych w $k$-tym kroku.
Jeśli początkowy klucz ma już wagę co najmniej $2n$, możesz wypisać tylko liczbę całkowitą $0$.
Przykład
Wejście 1
000000000
Wyjście 1
3 2 5 6
Wejście 2
111001000111
Wyjście 2
2 3 9
Wejście 3
010101
Wyjście 3
0