


import unittest
import warnings

from datasets.utils import experimental



@experimental
def      _lowerCAmelCase  (							)->List[Any]:
   '''simple docstring'''






   return "success"



class       __lowerCAmelCase       (	unittest.TestCase   ):






  """simple docstring"""





  def    lowerCAmelCase__					(       self    :    Tuple					)				->	str:




     """simple docstring"""
     with warnings.catch_warnings(record=_lowerCAmelCase					) as w:
        warnings.simplefilter("always"					)
        self.assertEqual(dummy_function()      ,			"success"					)
     self.assertEqual(len(_lowerCAmelCase					)      ,			1					)








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))




