




def 					A				(				_SCREAMING_SNAKE_CASE			,_SCREAMING_SNAKE_CASE   )     ->			int:
       lowerCamelCase       :				Optional[int]      			= 1.0
       for i in range(1			,r + 1   ):
              ret *= (n + 1 - i) / i
       return round(_SCREAMING_SNAKE_CASE   )

def 					A				(				_SCREAMING_SNAKE_CASE   )     ->			int:
       return choose(8 + n			,_SCREAMING_SNAKE_CASE   ) + choose(9 + n			,_SCREAMING_SNAKE_CASE   ) - 10

def 					A				(				_SCREAMING_SNAKE_CASE   )     ->			int:
       return sum(non_bouncy_exact(_SCREAMING_SNAKE_CASE   ) for i in range(1			,n + 1   )   )

def 					A				(				_SCREAMING_SNAKE_CASE = 100   )     ->			int:
       return non_bouncy_upto(_SCREAMING_SNAKE_CASE   )


if __name__ == "__main__":
       print(f'''{solution() = }''')












# 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/






