





import os

from apache_beam.io.filesystems import FileSystems
from apache_beam.pipeline import Pipeline

from .logging import get_logger


_SCREAMING_SNAKE_CASE   						=		2 << 20  # 2mb
_SCREAMING_SNAKE_CASE   						=		get_logger(__name__)
class SCREAMING_SNAKE_CASE_    (       snake_case_       ):






						def UpperCAmelCase_					(   self   :   List[str]						)				->     int:







							"""simple docstring"""


							snake_case_		:      List[str]           =						self._options.get_all_options().get('runner'						)
							return runner in [None, "DirectRunner", "PortableRunner"]


def 				SCREAMING_SNAKE_CASE__    (     __a ,			__a ,			__a=False ):
	snake_case_		:      List[str]           =						FileSystems
	if fs.exists(__a ):
		if force_upload:
			logger.info(f"""Remote path already exist: {remote_file_path}. Overwriting it as force_upload=True.""" )
		else:
			logger.info(f"""Remote path already exist: {remote_file_path}. Skipping it as force_upload=False.""" )
			return
	with fs.create(__a ) as remote_file:
		with open(__a ,			'rb' ) as local_file:
			snake_case_		:      Optional[Any]           =						local_file.read(__a )
			while chunk:
				remote_file.write(__a )
				snake_case_		:      Tuple           =						local_file.read(__a )


def 				SCREAMING_SNAKE_CASE__    (     __a ,			__a ,			__a=False ):
	snake_case_		:      List[Any]           =						FileSystems
	if os.path.exists(__a ):
		if force_download:
			logger.info(f"""Local path already exist: {remote_file_path}. Overwriting it as force_upload=True.""" )
		else:
			logger.info(f"""Local path already exist: {remote_file_path}. Skipping it as force_upload=False.""" )
			return
	with fs.open(__a ) as remote_file:
		with open(__a ,			'wb' ) as local_file:
			snake_case_		:      Union[str, Any]           =						remote_file.read(__a )
			while chunk:
				local_file.write(__a )
				snake_case_		:      List[str]           =						remote_file.read(__a )


import math







def 						UpperCAmelCase							(		lowerCAmelCase_							)						->						int:
     return sum(int(lowerCAmelCase_							) for digit in str(lowerCAmelCase_							)							)







def 						UpperCAmelCase							(		lowerCAmelCase_ = 3_0							)						->						int:
     a	:     Optional[int]						      =    []
     for digit in range(2    ,   1_0_0							):
          for power in range(2    ,   1_0_0							):
               a	:     List[str]						      =    int(math.pow(lowerCAmelCase_    ,   lowerCAmelCase_							)							)
               if digit == digit_sum(lowerCAmelCase_							):
                    digit_to_powers.append(lowerCAmelCase_							)

     digit_to_powers.sort()
     return digit_to_powers[n - 1]


if __name__ == "__main__":
  print(solution())