David's Sudoku Solver