def f(L):
o=[];i=[];j=[]
for x in L:[i,j][[]<x]+=[x]
if i:o+=[i]
if j:o+=f(sum(j,[]))
return o
L = [1, 2, [3, [4, 5], 6, [7, [8], 9]]] # => [1, 2], [3, 6], [4, 5, 7, 9], [8]
print f(L)
L = [3, 1, [12, [14, [18], 2], 1], [[4]], 5] #=> [[3, 1, 5], [12, 1], [14, 2, 4], [18]]
print f(L)
L = [2, 1, [[5]], 6] #=> [[2, 1, 6], [5]]
print f(L)
L = [[54, [43, 76, [[[-19]]]], 20], 12] #=> [[12], [54, 20], [43, 76], [-19]]
print f(L)
L = [[[50]], [[50]]] #=> [[50, 50]]
print f(L)
ZGVmIGYoTCk6CglvPVtdO2k9W107aj1bXQoJZm9yIHggaW4gTDpbaSxqXVtbXTx4XSs9W3hdCglpZiBpOm8rPVtpXQoJaWYgajpvKz1mKHN1bShqLFtdKSkKCXJldHVybiBvCgpMID0gWzEsIDIsIFszLCBbNCwgNV0sIDYsIFs3LCBbOF0sIDldXV0gIyA9PiBbMSwgMl0sIFszLCA2XSwgWzQsIDUsIDcsIDldLCBbOF0KcHJpbnQgZihMKQoKTCA9IFszLCAxLCBbMTIsIFsxNCwgWzE4XSwgMl0sIDFdLCBbWzRdXSwgNV0gIz0+IFtbMywgMSwgNV0sIFsxMiwgMV0sIFsxNCwgMiwgNF0sIFsxOF1dCnByaW50IGYoTCkKCkwgPSBbMiwgMSwgW1s1XV0sIDZdICM9PiBbWzIsIDEsIDZdLCBbNV1dCnByaW50IGYoTCkKCkwgPSBbWzU0LCBbNDMsIDc2LCBbW1stMTldXV1dLCAyMF0sIDEyXSAjPT4gW1sxMl0sIFs1NCwgMjBdLCBbNDMsIDc2XSwgWy0xOV1dCnByaW50IGYoTCkKCkwgPSBbW1s1MF1dLCBbWzUwXV1dICM9PiBbWzUwLCA1MF1dCnByaW50IGYoTCk=
[[1, 2], [3, 6], [4, 5, 7, 9], [8]]
[[3, 1, 5], [12, 1], [14, 2, 4], [18]]
[[2, 1, 6], [5]]
[[12], [54, 20], [43, 76], [-19]]
[[50, 50]]