optimization of sudoku using backtracking