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 ;->
