



'''simple docstring'''



def        UpperCAmelCase (    A	:					bytes					):
							return "".join([hex(A					)[2:].zfill(2					).upper() for byte in list(A					)]					)
def        UpperCAmelCase (    A	:					str					):
							# Check data validity, following RFC3548
							# https://www.ietf.org/rfc/rfc3548.txt
							if (len(A					) % 2) != 0:
														raise ValueError(
														    '''Base16 encoded data is invalid:
Data does not have an even number of hex digits.'''					)
							# Check the character set - the standard base16 alphabet
							# is uppercase according to RFC3548 section 6
							if not set(A					) <= set('''0123456789ABCDEF'''					):
														raise ValueError(
														    '''Base16 encoded data is invalid:
Data is not uppercase hex or it contains invalid characters.'''					)
							# For every two hexadecimal digits (= a byte), turn it into an integer.
							# Then, string the result together into bytes, and return it.
							return bytes(int(data[i] + data[i + 1]       ,		16					) for i in range(0       ,		len(A					)       ,		2					)					)


if __name__ == "__main__":
							import doctest

							doctest.testmod()









'''simple docstring'''



from math import pow
def        UpperCAmelCase (    A	:					int       ,		A	:					int       ,		A	:					int       ,		A	:					int       ,		A	:					int       ,		):
							if current_sum == needed_sum:
														# If the sum of the powers is equal to needed_sum, then we have a solution.
														solutions_count += 1
														return current_sum, solutions_count

							SCREAMING_SNAKE_CASE       :   Tuple         =      int(pow(A       ,		A					)					)
							if current_sum + i_to_n <= needed_sum:
														# If the sum of the powers is less than needed_sum, then continue adding powers.
														current_sum += i_to_n
														SCREAMING_SNAKE_CASE       ,SCREAMING_SNAKE_CASE       :   Dict         =      backtrack(
														    A       ,		A       ,		current_number + 1       ,		A       ,		A					)
														current_sum -= i_to_n
							if i_to_n < needed_sum:
														# If the power of i is less than needed_sum, then try with the next power.
														SCREAMING_SNAKE_CASE       ,SCREAMING_SNAKE_CASE       :   int         =      backtrack(
														    A       ,		A       ,		current_number + 1       ,		A       ,		A					)
							return current_sum, solutions_count
def        UpperCAmelCase (    A	:					int       ,		A	:					int					):
							if not (1 <= needed_sum <= 1000 and 2 <= power <= 10):
														raise ValueError(
														    '''Invalid input\n'''
														    '''needed_sum must be between 1 and 1000, power between 2 and 10.'''					)

							return backtrack(A       ,		A       ,		1       ,		0       ,		0					)[1]  # Return the solutions_count


if __name__ == "__main__":
							import doctest

							doctest.testmod()




