Module Nonoblock (n, m) { Print "Cells:",n," Blocks:",m Dim n(1 to n), m(1 to m), sp(1 to m*2), sk(1 to m*2), part(1 to m) queue=0 If m>0 Then { Print "Block Size:", For i=1 to m { Read m(i) Print m(i), } Print part(m)=m(m) If m>1 Then { For i=m-1 to 1 { part(i)=m(i)+part(i+1)+1 } } } If part(1)>n Then { Print "Impossible" } Else { p1=0 l=0 Counter=0 While p1<=n-part(1) { k=0 p=p1+1 For i=1 to n { n(i)=0 } flag=True Repeat { While k0 Then { p=sp(queue) k=sk(queue) queue-- For i=p to n { n(i)=0 } p++ If k