def f(a):
h=[]
while a:x,w,*a=a;h[:x+w]=(h+[0]*x)[:x]+[max(h[x:x+w]+[0])+1]*w
return h
inputs = [
[2,4, 4,6, 12,1],
[0,5, 9,1, 6,4, 2,5],
[0,5, 9,1, 2,5, 6,4],
[0,5, 2,5, 6,4, 9,1],
[20,1, 20,1, 20,1],
[5,5],
[0,2, 1,2, 2,2, 3,2, 4,2, 5,2, 6,2, 7,2, 8,4],
]
for i in inputs:
print(f(i))
ZGVmIGYoYSk6CiBoPVtdCiB3aGlsZSBhOngsdywqYT1hO2hbOngrd109KGgrWzBdKngpWzp4XStbbWF4KGhbeDp4K3ddK1swXSkrMV0qdwogcmV0dXJuIGgKCmlucHV0cyA9IFsKICAgIFsyLDQsIDQsNiwgMTIsMV0sCiAgICBbMCw1LCA5LDEsIDYsNCwgMiw1XSwKICAgIFswLDUsIDksMSwgMiw1LCA2LDRdLAogICAgWzAsNSwgMiw1LCA2LDQsIDksMV0sCiAgICBbMjAsMSwgMjAsMSwgMjAsMV0sCiAgICBbNSw1XSwKICAgIFswLDIsIDEsMiwgMiwyLCAzLDIsIDQsMiwgNSwyLCA2LDIsIDcsMiwgOCw0XSwKXQoKZm9yIGkgaW4gaW5wdXRzOgogICAgcHJpbnQoZihpKSk=
[0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 1]
[1, 1, 3, 3, 3, 3, 3, 2, 2, 2]
[1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
[1, 1, 2, 2, 2, 2, 3, 3, 3, 4]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3]
[0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9]