o=[]
i=[o,o]
j=[i]
def dbg(t,x,k):
if x==o: return "0"
if x==j: return "1"
if t==0:
v=""
while x!=[]:
*x,y=x
if y==i:
v+=str(len(x)+1)+"+"
break
if k==0:
v+="..."
break
k-=1
v+=dbg(1,y,k)+"+"
v=v[:-1]
else:
if len(x)==2:
_,x=x
v=dbg(0,x,k)
if len(x)>1 and x[-1]!=i: v="("+v+")"
if v=="1": return "w"
return "w^"+v
v="f("
while x!=[]:
*x,p,q=x
if k==0:
v+="..."
break
k-=1
if p!=o: v+=dbg(0,p,k)+":"
v+=dbg(0,q,k)+","