



'''simple docstring'''







from ...configuration_utils import PretrainedConfig
from ...utils import logging


SCREAMING_SNAKE_CASE__     : Any				=   logging.get_logger(__name__)

SCREAMING_SNAKE_CASE__     : List[str]				=   {
    """facebook/regnet-y-040""": """https://huggingface.co/facebook/regnet-y-040/blob/main/config.json""",
}




class 				__lowerCAmelCase(							lowerCAmelCase__      ):
			__snake_case  :		Union[str, Any]		=      'regnet'
			__snake_case  :		Dict		=      ['x', 'y']






			def __init__(   self  :							List[Any]      ,       SCREAMING_SNAKE_CASE  :							List[Any]=3      ,       SCREAMING_SNAKE_CASE  :							Optional[Any]=32      ,       SCREAMING_SNAKE_CASE  :							Dict=[128, 192, 512, 1_088]      ,       SCREAMING_SNAKE_CASE  :							Dict=[2, 6, 12, 2]      ,       SCREAMING_SNAKE_CASE  :							Any=64      ,       SCREAMING_SNAKE_CASE  :							int="y"      ,       SCREAMING_SNAKE_CASE  :							Any="relu"      ,       **SCREAMING_SNAKE_CASE  :							str      ,       ):




					"""simple docstring"""







					super().__init__(**SCREAMING_SNAKE_CASE	)
					if layer_type not in self.layer_types:
							raise ValueError(f'layer_type={layer_type} is not one of {",".join(self.layer_types	)}'	)
					SCREAMING_SNAKE_CASE_						:List[str]										=      num_channels
					SCREAMING_SNAKE_CASE_						:str										=      embedding_size
					SCREAMING_SNAKE_CASE_						:int										=      hidden_sizes
					SCREAMING_SNAKE_CASE_						:Union[str, Any]										=      depths
					SCREAMING_SNAKE_CASE_						:Tuple										=      groups_width
					SCREAMING_SNAKE_CASE_						:Union[str, Any]										=      layer_type
					SCREAMING_SNAKE_CASE_						:Dict										=      hidden_act
					# always downsample in the first stage
					SCREAMING_SNAKE_CASE_						:str										=      True





'''simple docstring'''







def  SCREAMING_SNAKE_CASE__ (				SCREAMING_SNAKE_CASE ,		SCREAMING_SNAKE_CASE ,		SCREAMING_SNAKE_CASE     ):
		assert b != 0, "This cannot accept modulo that is == 0"
		if n == 0:
				return 1

		if n % 2 == 1:
				return (bin_exp_mod(SCREAMING_SNAKE_CASE ,		n - 1 ,		SCREAMING_SNAKE_CASE     ) * a) % b

		SCREAMING_SNAKE_CASE_						:List[str]										=      bin_exp_mod(SCREAMING_SNAKE_CASE ,		n / 2 ,		SCREAMING_SNAKE_CASE     )
		return (r * r) % b


if __name__ == "__main__":
							try:
														SCREAMING_SNAKE_CASE__     : Any				=   int(input("""Enter Base : """).strip())
														SCREAMING_SNAKE_CASE__     : str				=   int(input("""Enter Power : """).strip())
														SCREAMING_SNAKE_CASE__     : List[Any]				=   int(input("""Enter Modulo : """).strip())
							except ValueError:
														print("""Invalid literal for integer""")

							print(bin_exp_mod(BASE, POWER, MODULO))
