https://www.cheatsheetshero.com/user/all/584-recursion-and-backtracking-cheat-sheet