Goran đang hồi phục sau ca phẫu thuật đầu gối và thử nghiệm một thẻ thông minh dùng để lưu trữ các khóa mật mã. Trong bài toán này, một khóa là một xâu bit có độ dài $3n$, trong đó $n$ là một số nguyên dương. Các bit của khóa được đánh số từ $1$ đến $3n$ từ trái sang phải. Trọng số của một khóa là số cặp bit kề nhau khác nhau cộng thêm một. Ví dụ, trọng số của khóa 000 là $1$, còn trọng số của khóa 011010100 là $7$.
Anh phát hiện rằng có thể can thiệp vào khóa bằng cách truyền những xung điện nhỏ qua các mạch của thẻ thông minh. Cụ thể, anh có thể thực hiện một cách đáng tin cậy thao tác sau: chọn hai bit kề nhau bất kỳ của khóa và đảo cả hai bit đó. Ví dụ, một thao tác có thể biến khóa 000 thành 110.
Cho một khóa có độ dài $3n$, hãy tìm một dãy bất kỳ gồm nhiều nhất $n$ thao tác biến khóa đã cho thành một khóa có trọng số ít nhất $2n$. Bạn có thể giả sử luôn tồn tại lời giải.
Dữ liệu vào
Dòng đầu tiên chứa một xâu gồm các chữ số 0 và 1 — khóa ban đầu. Độ dài của khóa là $3n$, trong đó $n$ là một số nguyên dương thỏa mãn $1\le n\le 100\,000$.
Dữ liệu ra
Dòng đầu tiên phải chứa một số nguyên $m$, với $0\le m\le n$ — số thao tác trong lời giải của bạn. Dòng tiếp theo phải chứa $m$ số nguyên $a_1,a_2,\ldots,a_m$ mô tả lời giải. Số $a_k$ là chỉ số của bit bên trái trong hai bit được đảo ở bước thứ $k$.
Nếu khóa ban đầu đã có trọng số ít nhất $2n$, bạn có thể chỉ in số nguyên 0.
Ví dụ
Dữ liệu vào 1
000000000
Dữ liệu ra 1
3 2 5 6
Dữ liệu vào 2
111001000111
Dữ liệu ra 2
2 3 9
Dữ liệu vào 3
010101
Dữ liệu ra 3
0