https://9lib.org/document/zx53g63o-polynomial-time-complete-optimal-algorithm-block-world-problems.html