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