Goran восстанавливается после операции на колене и экспериментирует со смарт-картой, предназначенной для хранения криптографических ключей. В этой задаче ключ — это битовая строка длины $3n$, где $n$ — положительное целое число. Отдельные биты ключа нумеруются целыми числами от $1$ до $3n$ слева направо. Вес ключа равен количеству пар различных соседних битов, увеличенному на единицу. Например, вес ключа «000» равен $1$, а вес ключа «011010100» равен $7$.
Он обнаружил, что может изменять ключ, пропуская небольшие электрические импульсы через цепи смарт-карты. В частности, он может надёжно выполнять следующую операцию: выбрать любые два соседних бита ключа и инвертировать оба. Например, за одну операцию можно изменить ключ «000» на «110».
Для заданного ключа длины $3n$ найдите любую последовательность не более чем из $n$ операций, преобразующую его в ключ с весом не менее $2n$. Можно считать, что решение всегда существует.
Входные данные
Первая строка содержит строку из цифр «0» и «1» — исходный ключ. Длина ключа равна $3n$, где $n$ — положительное целое число, удовлетворяющее $1 \le n \le 100\,000$.
Выходные данные
Первая строка должна содержать целое число $m$, где $0 \le m \le n$, — количество операций в вашем решении. Следующая строка должна содержать $m$ целых чисел $a_1,a_2,\ldots,a_m$, описывающих решение. Число $a_k$ — индекс левого из двух битов, инвертируемых на $k$-м шаге.
Если исходный ключ уже имеет вес не менее $2n$, можно вывести только целое число $0$.
Примеры
Входные данные 1
000000000
Выходные данные 1
3 2 5 6
Входные данные 2
111001000111
Выходные данные 2
2 3 9
Входные данные 3
010101
Выходные данные 3
0