Sudoku solver using backtracking