Things to do: - Enhance the program to solve puzzles with 4x4, 5x5, and 6x6 regions. - Refactor the solve() logic. It's kinda messy :-P - Optimize, optimize, optimize. (In my copious free time.) - Find something better to do with my life ;->