


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


SCREAMING_SNAKE_CASE		:Dict											=       logging.get_logger(__name__)

SCREAMING_SNAKE_CASE		:List[Any]											=       {
    '''bert-base-uncased''': '''https://huggingface.co/bert-base-uncased/resolve/main/config.json''',
    # QDQBERT models can be loaded from any BERT checkpoint, available at https://huggingface.co/models?filter=bert
}


class       __lowerCAmelCase       (	a   ):






  """simple docstring"""





  _SCREAMING_SNAKE_CASE						      =    'qdqbert'



  def __init__(       self    :    Union[str, Any]      ,			_lowerCAmelCase    :    Any=3_0_5_2_2      ,			_lowerCAmelCase    :    Optional[int]=7_6_8      ,			_lowerCAmelCase    :    Union[str, Any]=1_2      ,			_lowerCAmelCase    :    List[str]=1_2      ,			_lowerCAmelCase    :    Optional[Any]=3_0_7_2      ,			_lowerCAmelCase    :    Optional[int]="gelu"      ,			_lowerCAmelCase    :    List[Any]=0.1      ,			_lowerCAmelCase    :    str=0.1      ,			_lowerCAmelCase    :    str=5_1_2      ,			_lowerCAmelCase    :    Optional[int]=2      ,			_lowerCAmelCase    :    Optional[Any]=0.02      ,			_lowerCAmelCase    :    Union[str, Any]=1e-12      ,			_lowerCAmelCase    :    Optional[int]=True      ,			_lowerCAmelCase    :    List[Any]=1      ,			_lowerCAmelCase    :    Union[str, Any]=0      ,			_lowerCAmelCase    :    List[str]=2      ,			**_lowerCAmelCase    :    str      ,			)				->	Optional[int]:




     """simple docstring"""
     super().__init__(pad_token_id=_lowerCAmelCase      ,			bos_token_id=_lowerCAmelCase      ,			eos_token_id=_lowerCAmelCase      ,			**_lowerCAmelCase					)

     snake_case_         =   vocab_size
     snake_case_         =   max_position_embeddings
     snake_case_         =   hidden_size
     snake_case_         =   num_hidden_layers
     snake_case_         =   num_attention_heads
     snake_case_         =   intermediate_size
     snake_case_         =   hidden_act
     snake_case_         =   hidden_dropout_prob
     snake_case_         =   attention_probs_dropout_prob
     snake_case_         =   initializer_range
     snake_case_         =   type_vocab_size
     snake_case_         =   layer_norm_eps
     snake_case_         =   use_cache








def      _lowerCAmelCase  (							lowerCAmelCase_							:Dict						,  lowerCAmelCase_							:Optional[int]						,  lowerCAmelCase_							:Tuple							)->Optional[Any]:
   '''simple docstring'''






   assert b != 0, "This cannot accept modulo that is == 0"
   if n == 0:
      return 1

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

   snake_case_         =   bin_exp_mod(lowerCAmelCase_						,  n / 2						,  lowerCAmelCase_							)
   return (r * r) % b


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

   print(bin_exp_mod(BASE, POWER, MODULO))




