

def  __a    (				SCREAMING_SNAKE_CASE    ,				SCREAMING_SNAKE_CASE    ,				SCREAMING_SNAKE_CASE ) ->       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(SCREAMING_SNAKE_CASE    ,				n - 1    ,				SCREAMING_SNAKE_CASE ) * a) % b

    __UpperCAmelCase			   =     bin_exp_mod(SCREAMING_SNAKE_CASE    ,				n / 2    ,				SCREAMING_SNAKE_CASE )
    return (r * r) % b


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

       print(bin_exp_mod(BASE, POWER, MODULO))







# this script builds a small sample spm file tests/fixtures/test_sentencepiece_no_bos.model, with features needed by pegasus

# 1. pip install sentencepiece
#
# 2. wget https://raw.githubusercontent.com/google/sentencepiece/master/data/botchan.txt

# 3. build
import sentencepiece as spm

# pegasus:
# 1. no bos
# 2. eos_id is 1
# 3. unk_id is 2
# build a sample spm file accordingly
spm.SentencePieceTrainer.train(
    '--input=botchan.txt --model_prefix=test_sentencepiece_no_bos --bos_id=-1 --unk_id=2  --eos_id=1  --vocab_size=1000'
)

# 4. now update the fixture
# mv test_sentencepiece_no_bos.model ../../tests/fixtures/




