https://9dok.net/document/zx5o122o-a-non-iterative.html