

def 		_lowercase			(					lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__						):
						return len_board * len_board_column * row + column







def 		_lowercase			(					lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__       ,     ):

						if board[row][column] != word[word_index]:
												return False

						if word_index == len(lowercase__						) - 1:
												return True

						__lowerCAmelCase :						Optional[Any] = [(0, 1), (0, -1), (-1, 0), (1, 0)]
						__lowerCAmelCase :						Tuple = len(lowercase__						)
						__lowerCAmelCase :						int = len(board[0]						)
						for direction in traverts_directions:
												__lowerCAmelCase :						Union[str, Any] = row + direction[0]
												__lowerCAmelCase :						str = column + direction[1]
												if not (0 <= next_i < len_board and 0 <= next_j < len_board_column):
																		continue

												__lowerCAmelCase :						Tuple = get_point_key(lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__						)
												if key in visited_points_set:
																		continue

												visited_points_set.add(lowercase__						)
												if exits_word(lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__       ,     word_index + 1       ,     lowercase__						):
																		return True

												visited_points_set.remove(lowercase__						)

						return False







def 		_lowercase			(					lowercase__       ,     lowercase__						):
						__lowerCAmelCase :						Dict = (
						    '''The board should be a non empty matrix of single chars strings.'''
						)

						__lowerCAmelCase :						int = len(lowercase__						)
						if not isinstance(lowercase__       ,     lowercase__						) or len(lowercase__						) == 0:
												raise ValueError(lowercase__						)

						for row in board:
												if not isinstance(lowercase__       ,     lowercase__						) or len(lowercase__						) == 0:
																		raise ValueError(lowercase__						)

												for item in row:
																		if not isinstance(lowercase__       ,     lowercase__						) or len(lowercase__						) != 1:
																								raise ValueError(lowercase__						)

    # Validate word
						if not isinstance(lowercase__       ,     lowercase__						) or len(lowercase__						) == 0:
												raise ValueError(
												    '''The word parameter should be a string of length greater than 0.'''						)

						__lowerCAmelCase :						Union[str, Any] = len(board[0]						)
						for i in range(lowercase__						):
												for j in range(lowercase__						):
																		if exits_word(
																		    lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__       ,     0       ,     {get_point_key(lowercase__       ,     lowercase__       ,     lowercase__       ,     lowercase__						)}						):
																								return True

						return False


if __name__ == "__main__":
	import doctest

	doctest.testmod()





def 		_lowercase			(					lowercase__       ,     lowercase__						):
      if len(str(lowercase__						)						) == 1 or len(str(lowercase__						)						) == 1:
            return a * b

      __lowerCAmelCase :						Any = max(len(str(lowercase__						)						)       ,     len(str(lowercase__						)						)						)
      __lowerCAmelCase :						Optional[int] = ma // 2

      __lowerCAmelCase,							__lowerCAmelCase :						Tuple = divmod(lowercase__       ,     1_0**ma						)
      __lowerCAmelCase,							__lowerCAmelCase :						Any = divmod(lowercase__       ,     1_0**ma						)

      __lowerCAmelCase :						str = karatsuba(lowercase__       ,     lowercase__						)
      __lowerCAmelCase :						Optional[int] = karatsuba((aa + aa)       ,     (ba + ba)						)
      __lowerCAmelCase :						List[Any] = karatsuba(lowercase__       ,     lowercase__						)

      return (z * 1_0 ** (2 * ma)) + ((y - z - x) * 1_0 ** (ma)) + (x)







def 		_lowercase			(					):
      print(karatsuba(1_5_4_6_3       ,     2_3_4_8_9						)						)


if __name__ == "__main__":
 main()


