


def   __lowerCamelCase	(       lowerCamelCase__		:	int     ,       lowerCamelCase__		:	int     ,       lowerCamelCase__		:	int     ,       lowerCamelCase__		:	int			):





   '''simple docstring'''




   return len_board * len_board_column * row + column






def   __lowerCamelCase	(       lowerCamelCase__		:	list[list[str]]     ,       lowerCamelCase__		:	str     ,       lowerCamelCase__		:	int     ,       lowerCamelCase__		:	int     ,       lowerCamelCase__		:	int     ,       lowerCamelCase__		:	set[int]     ,       ):





   '''simple docstring'''




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

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

   lowerCamelCase								=     [(0, 1), (0, -1), (-1, 0), (1, 0)]
   lowerCamelCase								=     len(lowerCamelCase__			)
   lowerCamelCase								=     len(board[0]			)
   for direction in traverts_directions:
      lowerCamelCase								=     row + direction[0]
      lowerCamelCase								=     column + direction[1]
      if not (0 <= next_i < len_board and 0 <= next_j < len_board_column):
         continue

      lowerCamelCase								=     get_point_key(lowerCamelCase__     ,       lowerCamelCase__     ,       lowerCamelCase__     ,       lowerCamelCase__			)
      if key in visited_points_set:
         continue

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

      visited_points_set.remove(lowerCamelCase__			)

   return False






def   __lowerCamelCase	(       lowerCamelCase__		:	list[list[str]]     ,       lowerCamelCase__		:	str			):





   '''simple docstring'''




   lowerCamelCase								=     (
       """The board should be a non empty matrix of single chars strings."""
   )

   lowerCamelCase								=     len(lowerCamelCase__			)
   if not isinstance(lowerCamelCase__     ,       lowerCamelCase__			) or len(lowerCamelCase__			) == 0:
      raise ValueError(lowerCamelCase__			)

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

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

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

   lowerCamelCase								=     len(board[0]			)
   for i in range(lowerCamelCase__			):
      for j in range(lowerCamelCase__			):
         if exits_word(
             lowerCamelCase__     ,       lowerCamelCase__     ,       lowerCamelCase__     ,       lowerCamelCase__     ,       0     ,       {get_point_key(lowerCamelCase__     ,       lowerCamelCase__     ,       lowerCamelCase__     ,       lowerCamelCase__			)}			):
            return True

   return False


if __name__ == "__main__":
  import doctest

  doctest.testmod()





def   __lowerCamelCase	(       lowerCamelCase__		:	int = 100     ,       lowerCamelCase__		:	int = 100			):





			'''simple docstring'''




			return max(
			    sum(int(lowerCamelCase__			) for x in str(base**power			)			)
			    for base in range(lowerCamelCase__			)
			    for power in range(lowerCamelCase__			)			)


# Tests
if __name__ == "__main__":
		import doctest

		doctest.testmod()

