Stereolitografi (SLA) är en 3D-utskriftsteknik för att härda flytande material till ett fast objekt ett lager i taget med hjälp av en laser. I det här problemet betraktar vi en 2D-förenkling av SLA där designen av objektet som skrivs ut kan representeras som ett rektangulärt rutnät av tecknen # och ., där # representerar en rutnätscell som upptas av objektet och . är tomt utrymme. Här är till exempel en $4 \times 8$-design:
..#..... ..#..#.. #.#.##.. #.#####.
En design behöver inte bestå av ett enda sammanhängande stycke, men med undantag för #-celler på den nedersta raden i designen måste varje #-cell stödjas av en annan #-cell direkt under den.
Utskrift av ett objekt med SLA sker lager för lager, med början från den nedersta raden. Först översvämmas alla celler i raden med ett flytande ljuskänsligt harts. Därefter sveper en laser över raden, härdar hartset i alla #-celler till fast form och hoppar över alla .-celler. Sedan rinner överbliven vätska till vänster om det # som är längst till vänster och till höger om det # som är längst till höger bort. Annan vätska förblir instängd. (Om det inte finns några #-celler i raden — vilket bara kan hända för rader nära toppen av designen, efter att objektet har skrivits ut helt — rinner all vätska bort från raden.) Denna process upprepas sedan för varje efterföljande rad. För designen ovan, efter att utskriften är klar, förblir harts instängt i alla celler som är markerade med ett ~-tecken nedan:
..#..... ..#~~#.. #~#~##.. #~#####.
Medan du manuellt suger bort det överblivna hartset från objektet börjar du undra: hur mycket av den ursprungliga designen kan återskapas om man bara vet hur mycket flytande harts som finns kvar i varje rad av designen efter utskrift? För designen ovan är mängden överblivet harts i varje rad (med början från toppen av designen) $0, 2, 2, 1$. Andra designer har också samma fingeravtryck av överblivet harts; till exempel:
.... #..# #..# #.##
Givet en lista över hur många celler av flytande harts som finns kvar i varje rad (med början från den översta raden), skriv ut bredden på den smalaste objektdesignen vars rader skulle innehålla dessa mängder flytande harts efter utskrift. Om ingen sådan design existerar, skriv ut impossible.
Indata
Den första raden i indatan innehåller ett enda heltal $N$ ($1 \le N \le 10^5$), antalet rader i objektdesignen. Därefter följer $N$ rader som var och en innehåller ett enda heltal $x$ ($0 \le x \le 10^9$), antalet celler med överblivet flytande harts i varje rad av den önskade objektdesignen (i ordning uppifrån och ner).
Minst en rad kommer att ha minst en överbliven cell med flytande harts.
Utdata
Skriv ut bredden (antalet kolumner) i den smalaste objektdesignen vars antal celler med överblivet flytande harts i varje rad matchar indatan. ("Smalaste" betyder att den har minsta möjliga antal kolumner). Om ingen sådan design existerar, skriv ut impossible istället.
Exempel
Indata 1
4 0 2 2 1
Utdata 1
4
Indata 2
3 4 0 4
Utdata 2
11
Förklaring
Exempelindata 1 motsvarar exemplet ovan. En smalast möjliga design för exempelindata 2 är:
#....#..... ######..... ######....#