add hanoi
Revert "add hanoi"

This reverts commit 3454d391f15f4d686fafd50c1d2ac5ee12f0fa7c.
Revert "Revert "add hanoi""

This reverts commit 6ea1b75fd1dd0cf26937116a172af66a78b8a9c3.