




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						Tuple				)  ->							Union[str, Any]:







    for i in range(0	,					_UpperCamelCase				):
        for _ in range(0	,					n - i - 1				):  # printing spaces
            print(''' '''	,					end=''''''				)
        for _ in range(0	,					i + 1				):  # printing stars
            print('''* '''	,					end=''''''				)
        print()




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						Optional[int]				)  ->							Optional[int]:







    for i in range(_UpperCamelCase	,					0	,					-1				):
        for _ in range(_UpperCamelCase	,					0	,					-1				):  # printing stars
            print('''* '''	,					end=''''''				)
        print()
        for _ in range(n - i + 1	,					0	,					-1				):  # printing spaces
            print(''' '''	,					end=''''''				)




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						Any				)  ->							int:







    if n <= 0:
        print('''       ...       ....        nothing printing :('''				)
        return
    floyd(_UpperCamelCase				)  # upper half
    reverse_floyd(_UpperCamelCase				)  # lower half


if __name__ == "__main__":
 print(r'| /\ | |- |  |-  |--| |\  /| |-')
 print(r'|/  \| |- |_ |_  |__| | \/ | |_')
 _lowerCamelCase      			=						1
 while K:
  _lowerCamelCase      			=						int(input('enter the number and , and see the magic : '))
  print()
  pretty_print(user_number)
  _lowerCamelCase      			=						int(input('press 0 to exit... and 1 to continue...'))

 print('Good Bye...')











from __future__ import annotations

_lowerCamelCase      			=						list[list[int]]

# assigning initial values to the grid
_lowerCamelCase      			=						[
    [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
_lowerCamelCase      			=						[
    [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  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						Matrix	,					__UpperCamelCase      :						int	,					__UpperCamelCase      :						int	,					__UpperCamelCase      :						int				)  ->							bool:
    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  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						Matrix				)  ->							tuple[int, int] | None:
    for i in range(9				):
        for j in range(9				):
            if grid[i][j] == 0:
                return i, j
    return None




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						Matrix				)  ->							Matrix | None:
    if location := find_empty_location(__UpperCamelCase				):
        UpperCAmelCase_			,							UpperCAmelCase_										=					location
    else:
        # If the location is ``None``, then the grid is solved.
        return grid

    for digit in range(1	,					10				):
        if is_safe(__UpperCamelCase	,					__UpperCamelCase	,					__UpperCamelCase	,					__UpperCamelCase				):
            UpperCAmelCase_										=					digit

            if sudoku(__UpperCamelCase				) is not None:
                return grid

            UpperCAmelCase_										=					0

    return None




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						Matrix				)  ->							None:
    for row in grid:
        for cell in row:
            print(__UpperCamelCase	,					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' + '=' * 20)
  print_solution(example_grid)
  print('\nExample grid solution:')
  _lowerCamelCase      			=						sudoku(example_grid)
  if solution is not None:
   print_solution(solution)
  else:
   print('Cannot find a solution.')





