last one

last problem is difficult, Especially the recursion design is so smart
and full of art.