sudoku puzzle solver in prolog