while 1: i=input();r=range(i);a=["1"]+["_"]*~-i*2+r for m in r: \x09x=0 \x09for j in r: \x09 w=0 \x09 while"9"<a[j-w]:w-=1 \x09 if w/2<x/2:x=w;y=j \x09if-2>x:a[y+~x/2]=`m+2` print"%d:"%i," ".join(a[:i])
Note that non-ascii characters in the above source code will be escaped (such as \x9f).