


import json
from typing import Iterator, List, Union

from tokenizers import AddedToken, Regex, Tokenizer, decoders, normalizers, pre_tokenizers, trainers
from tokenizers.implementations.base_tokenizer import BaseTokenizer
from tokenizers.models import Unigram
from tokenizers.processors import TemplateProcessing







class 		_snake_case  (      _snake_case							):




 def __init__(		self					,  _lowerCamelCase = "▁"					,  _lowerCamelCase = True					,  _lowerCamelCase = "<unk>"					,  _lowerCamelCase = "</s>"					,  _lowerCamelCase = "<pad>"					,  ):
       a						:Optional[int] 							=       {
           '''pad''': {'''id''': 0, '''token''': pad_token},
           '''eos''': {'''id''': 1, '''token''': eos_token},
           '''unk''': {'''id''': 2, '''token''': unk_token},
       }

       a						:str 							=       [None] * len(self.special_tokens    )
       for token_dict in self.special_tokens.values():
             a						:str 							=       token_dict['''token''']

       a						:List[Any] 							=       Tokenizer(Unigram()    )

       a						:Tuple 							=       normalizers.Sequence(
           [
               normalizers.Nmt(),
               normalizers.NFKC(),
               normalizers.Replace(Regex(''' {2,}'''    )					,  ''' '''    ),
               normalizers.Lowercase(),
           ]    )
       a						:List[str] 							=       pre_tokenizers.Sequence(
           [
               pre_tokenizers.Metaspace(replacement=_lowerCamelCase					,  add_prefix_space=_lowerCamelCase    ),
               pre_tokenizers.Digits(individual_digits=_lowerCamelCase    ),
               pre_tokenizers.Punctuation(),
           ]    )
       a						:List[str] 							=       decoders.Metaspace(replacement=_lowerCamelCase					,  add_prefix_space=_lowerCamelCase    )

       a						:Tuple 							=       TemplateProcessing(
           single=F'''$A {self.special_tokens['eos']['token']}'''					,  special_tokens=[(self.special_tokens['''eos''']['''token'''], self.special_tokens['''eos''']['''id'''])]					,  )

       a						:Optional[Any] 							=       {
           '''model''': '''SentencePieceUnigram''',
           '''replacement''': replacement,
           '''add_prefix_space''': add_prefix_space,
       }

       super().__init__(_lowerCamelCase					,  _lowerCamelCase    )




 def        SCREAMING_SNAKE_CASE__				(		self					,  _lowerCamelCase					,  _lowerCamelCase = 8000					,  _lowerCamelCase = True					,  ):
       a						:Optional[Any] 							=       trainers.UnigramTrainer(
           vocab_size=_lowerCamelCase					,  special_tokens=self.special_tokens_list					,  show_progress=_lowerCamelCase					,  )

       if isinstance(_lowerCamelCase					,  _lowerCamelCase    ):
             a						:Optional[int] 							=       [files]
       self._tokenizer.train(_lowerCamelCase					,  trainer=_lowerCamelCase    )

       self.add_unk_id()




 def        SCREAMING_SNAKE_CASE__				(		self					,  _lowerCamelCase					,  _lowerCamelCase = 8000					,  _lowerCamelCase = True					,  ):
       a						:List[str] 							=       trainers.UnigramTrainer(
           vocab_size=_lowerCamelCase					,  special_tokens=self.special_tokens_list					,  show_progress=_lowerCamelCase					,  )

       self._tokenizer.train_from_iterator(_lowerCamelCase					,  trainer=_lowerCamelCase    )

       self.add_unk_id()




 def        SCREAMING_SNAKE_CASE__				(		self    ):
       a						:Any 							=       json.loads(self._tokenizer.to_str()    )

       a						:List[str] 							=       self.special_tokens['''unk''']['''id''']

       a						:List[Any] 							=       Tokenizer.from_str(json.dumps(_lowerCamelCase    )    )









import sys

snake_case				:    int       				=     (
    '''73167176531330624919225119674426574742355349194934'''
    '''96983520312774506326239578318016984801869478851843'''
    '''85861560789112949495459501737958331952853208805511'''
    '''12540698747158523863050715693290963295227443043557'''
    '''66896648950445244523161731856403098711121722383113'''
    '''62229893423380308135336276614282806444486645238749'''
    '''30358907296290491560440772390713810515859307960866'''
    '''70172427121883998797908792274921901699720888093776'''
    '''65727333001053367881220235421809751254540594752243'''
    '''52584907711670556013604839586446706324415722155397'''
    '''53697817977846174064955149290862569321978468622482'''
    '''83972241375657056057490261407972968652414535100474'''
    '''82166370484403199890008895243450658541227588666881'''
    '''16427171479924442928230863465674813919123162824586'''
    '''17866458359124566529476545682848912883142607690042'''
    '''24219022671055626321111109370544217506941658960408'''
    '''07198403850962455444362981230987879927244284909188'''
    '''84580156166097919133875499200524063689912560717606'''
    '''05886116467109405077541002256983155200055935729725'''
    '''71636269561882670428252483600823257530420752963450'''
)
def 				__lowerCamelCase						( UpperCAmelCase_						:		str = N						):




      """simple docstring"""





      a						:Optional[Any] 							=       -sys.maxsize - 1
      for i in range(len(UpperCAmelCase_						) - 12						):
            a						:Dict 							=       1
            for j in range(13						):
                  product *= int(n[i + j]						)
            if product > largest_product:
                  a						:str 							=       product
      return largest_product


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





