Sudoku Solver and Generator