สเตอริโอลิโทกราฟี (Stereolithography หรือ SLA) เป็นเทคนิคการพิมพ์ 3 มิติเพื่อทำให้วัสดุเหลวแข็งตัวเป็นวัตถุของแข็งทีละชั้นโดยใช้เลเซอร์ ในปัญหานี้ เราจะพิจารณาการลดรูปของ SLA เป็น 2 มิติ ซึ่งแบบของวัตถุที่กำลังพิมพ์สามารถแทนด้วยตารางสี่เหลี่ยมมุมฉากของอักขระ # และ . โดยที่ # แทนช่องตารางที่ถูกครอบครองโดยวัตถุ และ . แทนพื้นที่ว่าง ตัวอย่างเช่น นี่คือแบบขนาด $4 \times 8$:
..#..... ..#..#.. #.#.##.. #.#####.
แบบของวัตถุไม่จำเป็นต้องประกอบด้วยชิ้นส่วนที่เชื่อมต่อกันเพียงชิ้นเดียว แต่ยกเว้นช่อง # ในแถวล่างสุดของแบบแล้ว แต่ละช่อง # จะต้องถูกรองรับด้วยช่อง # อีกช่องหนึ่งที่อยู่ด้านล่างของมันโดยตรง
การพิมพ์วัตถุโดยใช้ SLA จะดำเนินการทีละชั้นโดยเริ่มจากแถวล่างสุด ขั้นแรก ทุกช่องในแถวจะถูกท่วมด้วยเรซินเหลวไวแสง จากนั้นเลเซอร์จะกวาดผ่านแถว ทำให้เรซินในทุกช่อง # แข็งตัวเป็นของแข็งและข้ามทุกช่อง . ไป จากนั้น ของเหลวที่เหลืออยู่ทางซ้ายของ # ที่อยู่ซ้ายสุดและทางขวาของ # ที่อยู่ขวาสุดจะไหลออกไป ของเหลวส่วนอื่นจะยังคงถูกกักขังอยู่ (หากไม่มีช่อง # ในแถวเลย—ซึ่งสามารถเกิดขึ้นได้เฉพาะกับแถวใกล้ด้านบนสุดของแบบ หลังจากที่วัตถุถูกพิมพ์เสร็จสมบูรณ์แล้ว—ของเหลวทั้งหมดจะไหลออกจากแถว) จากนั้นกระบวนการนี้จะทำซ้ำสำหรับแต่ละแถวถัดไป สำหรับแบบด้านบน หลังจากการพิมพ์เสร็จสมบูรณ์ เรซินจะยังคงถูกกักอยู่ในทุกช่องที่ทำเครื่องหมายด้วยอักขระ ~ ด้านล่างนี้:
..#..... ..#~~#.. #~#~##.. #~#####.
ในขณะที่กำลังดูดเรซินที่ตกค้างออกจากวัตถุด้วยมือ คุณก็เริ่มสงสัยว่า: เราสามารถกู้คืนแบบดั้งเดิมได้มากน้อยเพียงใดจากการรู้เพียงว่ามีเรซินเหลวเหลืออยู่ในแต่ละแถวของแบบมากเท่าใดหลังจากการพิมพ์? สำหรับแบบด้านบน ปริมาณเรซินที่เหลืออยู่ในแต่ละแถว (เริ่มจากด้านบนสุดของแบบ) คือ $0, 2, 2, 1$ แบบอื่นๆ ก็มีรูปแบบเรซินตกค้างแบบเดียวกันนี้เช่นกัน ตัวอย่างเช่น:
.... #..# #..# #.##
เมื่อกำหนดรายการจำนวนช่องของเรซินเหลวที่เหลืออยู่ในแต่ละแถว (เริ่มจากแถวบนสุด) จงพิมพ์ความกว้างของแบบวัตถุที่แคบที่สุดซึ่งแต่ละแถวจะมีปริมาณเรซินเหลวเหล่านั้นหลังจากการพิมพ์ หากไม่มีแบบดังกล่าวอยู่ จงพิมพ์ impossible
ข้อมูลนำเข้า
บรรทัดแรกของข้อมูลนำเข้าประกอบด้วยจำนวนเต็มเดี่ยว $N$ ($1 \le N \le 10^5$) คือจำนวนแถวในแบบวัตถุ ตามด้วย $N$ บรรทัด แต่ละบรรทัดประกอบด้วยจำนวนเต็มเดี่ยว $x$ ($0 \le x \le 10^9$) คือจำนวนช่องของเรซินเหลวที่เหลืออยู่ในแต่ละแถวของแบบวัตถุที่ต้องการ (เรียงตามลำดับจากบนลงล่าง)
อย่างน้อยหนึ่งแถวจะมีเรซินเหลวที่เหลืออยู่อย่างน้อยหนึ่งช่อง
ข้อมูลส่งออก
พิมพ์ความกว้าง (จำนวนคอลัมน์) ในแบบวัตถุที่แคบที่สุดซึ่งมีจำนวนช่องเรซินเหลวที่เหลืออยู่ในแต่ละแถวตรงกับข้อมูลนำเข้า ("แคบที่สุด" หมายถึงมีจำนวนคอลัมน์น้อยที่สุดเท่าที่เป็นไปได้) หากไม่มีแบบดังกล่าวอยู่ ให้พิมพ์ impossible แทน
ตัวอย่าง
ข้อมูลนำเข้า 1
4 0 2 2 1
ข้อมูลส่งออก 1
4
ข้อมูลนำเข้า 2
3 4 0 4
ข้อมูลส่งออก 2
11
หมายเหตุ
ข้อมูลนำเข้าตัวอย่างที่ 1 สอดคล้องกับตัวอย่างด้านบน แบบที่แคบที่สุดที่เป็นไปได้แบบหนึ่งสำหรับข้อมูลนำเข้าตัวอย่างที่ 2 คือ:
#....#..... ######..... ######....#