





'''simple docstring'''







from __future__ import annotations

SCREAMING_SNAKE_CASE_      =			list[list[int]]

# assigning initial values to the grid
SCREAMING_SNAKE_CASE_      =			[
    [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
SCREAMING_SNAKE_CASE_      =			[
    [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        __lowercase						(      __SCREAMING_SNAKE_CASE				,  __SCREAMING_SNAKE_CASE				,  __SCREAMING_SNAKE_CASE				,  __SCREAMING_SNAKE_CASE		)				->					Optional[Any]:
     """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        __lowercase						(      __SCREAMING_SNAKE_CASE		)				->					Tuple:
     """simple docstring"""




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




def        __lowercase						(      __SCREAMING_SNAKE_CASE		)				->					Any:
     """simple docstring"""




     if location := find_empty_location(A__		):
          __a ,						__a       =   location
     else:
          # If the location is ``None``, then the grid is solved.
          return grid

     for digit in range(1				,  10		):
          if is_safe(A__				,  A__				,  A__				,  A__		):
               __a       =   digit

               if sudoku(A__		) is not None:
                    return grid

               __a       =   0

     return None




def        __lowercase						(      __SCREAMING_SNAKE_CASE		)				->					List[str]:
     """simple docstring"""




     for row in grid:
          for cell in row:
               print(A__				,  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:')
  SCREAMING_SNAKE_CASE_      =			sudoku(example_grid)
  if solution is not None:
   print_solution(solution)
  else:
   print('Cannot find a solution.')










'''simple docstring'''







def        __lowercase						(      __SCREAMING_SNAKE_CASE		)				->					bool:
     """simple docstring"""




     __a       =   [int(__SCREAMING_SNAKE_CASE		) for i in ip_va_address.split("""."""		) if i.isdigit()]
     return len(__SCREAMING_SNAKE_CASE		) == 4 and all(0 <= int(__SCREAMING_SNAKE_CASE		) <= 254 for octet in octets		)


if __name__ == "__main__":
 SCREAMING_SNAKE_CASE_      =			input().strip()
 SCREAMING_SNAKE_CASE_      =			'valid' if is_ip_va_address_valid(ip) else 'invalid'
 print(f"""{ip} is a {valid_or_invalid} IP v4 address.""")






