



from __future__ import annotations

__snake_case    :		Optional[int]  =list[list[int]]

# assigning initial values to the grid
__snake_case    :		Matrix  =[
    [3, 0, 6, 5, 0, 8, 4, 0, 0],
    [5, 2, 0, 0, 0, 0, 0, 0, 0],
    [0, 8, 7, 0, 0, 0, 0, 3, 1],
    [0, 0, 3, 0, 1, 0, 0, 8, 0],
    [9, 0, 0, 8, 6, 3, 0, 0, 5],
    [0, 5, 0, 0, 9, 0, 6, 0, 0],
    [1, 3, 0, 0, 0, 0, 2, 5, 0],
    [0, 0, 0, 0, 0, 0, 0, 7, 4],
    [0, 0, 5, 2, 0, 6, 3, 0, 0],
]

# a grid with no solution
__snake_case    :		Matrix  =[
    [5, 0, 6, 5, 0, 8, 4, 0, 3],
    [5, 2, 0, 0, 0, 0, 0, 0, 2],
    [1, 8, 7, 0, 0, 0, 0, 3, 1],
    [0, 0, 3, 0, 1, 0, 0, 8, 0],
    [9, 0, 0, 8, 6, 3, 0, 0, 5],
    [0, 5, 0, 0, 9, 0, 6, 0, 0],
    [1, 3, 0, 0, 0, 0, 2, 5, 0],
    [0, 0, 0, 0, 0, 0, 0, 7, 4],
    [0, 0, 5, 2, 0, 6, 3, 0, 0],
]






def      lowerCAmelCase__		(   lowerCamelCase_		:		Matrix	,lowerCamelCase_		:		int	,lowerCamelCase_		:		int	,lowerCamelCase_		:		int):





				'''simple docstring'''

				for i in range(9):
								if grid[row][i] == n or grid[i][column] == n:
												return False

				for i in range(3):
								for j in range(3):
												if grid[(row - row % 3) + i][(column - column % 3) + j] == n:
																return False

				return True






def      lowerCAmelCase__		(   lowerCamelCase_		:		Matrix):





				'''simple docstring'''

				for i in range(9):
								for j in range(9):
												if grid[i][j] == 0:
																return i, j
				return None






def      lowerCAmelCase__		(   lowerCamelCase_		:		Matrix):





				'''simple docstring'''

				if location := find_empty_location(lowerCamelCase_):
								lowerCAmelCase__						,		lowerCAmelCase__					:    Optional[Any]												=					location
				else:
								# If the location is ``None``, then the grid is solved.
								return grid

				for digit in range(1	,10):
								if is_safe(lowerCamelCase_	,lowerCamelCase_	,lowerCamelCase_	,lowerCamelCase_):
												lowerCAmelCase__					:    Optional[Any]												=					digit

												if sudoku(lowerCamelCase_) is not None:
																return grid

												lowerCAmelCase__					:    Dict												=					0

				return None






def      lowerCAmelCase__		(   lowerCamelCase_		:		Matrix):





				'''simple docstring'''

				for row in grid:
								for cell in row:
												print(lowerCamelCase_	,end=''' ''')
								print()


if __name__ == "__main__":
							# make a copy of grid so that you can compare with the unmodified grid
							for example_grid in (initial_grid, no_solution):
														print('\nExample grid:\n' + '=' * 2_0)
														print_solution(example_grid)
														print('\nExample grid solution:')
														__snake_case    :		int  =sudoku(example_grid)
														if solution is not None:
																					print_solution(solution)
														else:
																					print('Cannot find a solution.')






from math import factorial






def      lowerCAmelCase__		(   lowerCamelCase_		:		int = 100):





				'''simple docstring'''

				return sum(map(lowerCamelCase_	,str(factorial(lowerCamelCase_))))


if __name__ == "__main__":
							print(solution(int(input('Enter the Number: ').strip())))

