



'''simple docstring'''


import os

from bleurt import score  # From: git+https://github.com/google-research/bleurt.git

import datasets


lowercase							       =			datasets.logging.get_logger(__name__)


lowercase							       =			'''\\n@inproceedings{bleurt,\n  title={BLEURT: Learning Robust Metrics for Text Generation},\n  author={Thibault Sellam and Dipanjan Das and Ankur P. Parikh},\n  booktitle={ACL},\n  year={2020},\n  url={https://arxiv.org/abs/2004.04696}\n}\n'''

lowercase							       =			'''\\nBLEURT a learnt evaluation metric for Natural Language Generation. It is built using multiple phases of transfer learning starting from a pretrained BERT model (Devlin et al. 2018)\nand then employing another pre-training phrase using synthetic data. Finally it is trained on WMT human annotations. You may run BLEURT out-of-the-box or fine-tune\nit for your specific application (the latter is expected to perform better).\n\nSee the project\'s README at https://github.com/google-research/bleurt#readme for more information.\n'''

lowercase							       =			'''\nBLEURT score.\n\nArgs:\n    `predictions` (list of str): prediction/candidate sentences\n    `references` (list of str): reference sentences\n    `checkpoint` BLEURT checkpoint. Will default to BLEURT-tiny if None.\n\nReturns:\n    \'scores\': List of scores.\nExamples:\n\n    >>> predictions = ["hello there", "general kenobi"]\n    >>> references = ["hello there", "general kenobi"]\n    >>> bleurt = datasets.load_metric("bleurt")\n    >>> results = bleurt.compute(predictions=predictions, references=references)\n    >>> print([round(v, 2) for v in results["scores"]])\n    [1.03, 1.04]\n'''

lowercase							       =			{
    '''bleurt-tiny-128''': '''https://storage.googleapis.com/bleurt-oss/bleurt-tiny-128.zip''',
    '''bleurt-tiny-512''': '''https://storage.googleapis.com/bleurt-oss/bleurt-tiny-512.zip''',
    '''bleurt-base-128''': '''https://storage.googleapis.com/bleurt-oss/bleurt-base-128.zip''',
    '''bleurt-base-512''': '''https://storage.googleapis.com/bleurt-oss/bleurt-base-512.zip''',
    '''bleurt-large-128''': '''https://storage.googleapis.com/bleurt-oss/bleurt-large-128.zip''',
    '''bleurt-large-512''': '''https://storage.googleapis.com/bleurt-oss/bleurt-large-512.zip''',
    '''BLEURT-20-D3''': '''https://storage.googleapis.com/bleurt-oss-21/BLEURT-20-D3.zip''',
    '''BLEURT-20-D6''': '''https://storage.googleapis.com/bleurt-oss-21/BLEURT-20-D6.zip''',
    '''BLEURT-20-D12''': '''https://storage.googleapis.com/bleurt-oss-21/BLEURT-20-D12.zip''',
    '''BLEURT-20''': '''https://storage.googleapis.com/bleurt-oss-21/BLEURT-20.zip''',
}







@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION					,	_KWARGS_DESCRIPTION)
class 	UpperCAmelCase	(		datasets.Metric):


 '''simple docstring'''




 def       lowercase_  (   self) ->      Dict:



      """simple docstring"""







      return datasets.MetricInfo(
          description=_DESCRIPTION							,  citation=_CITATION							,  homepage="https://github.com/google-research/bleurt"							,  inputs_description=_KWARGS_DESCRIPTION							,  features=datasets.Features(
              {
                  "predictions": datasets.Value("string"							,  id="sequence"),
                  "references": datasets.Value("string"							,  id="sequence"),
              })							,  codebase_urls=["https://github.com/google-research/bleurt"]							,  reference_urls=["https://github.com/google-research/bleurt", "https://arxiv.org/abs/2004.04696"]							,  )




 def       lowercase_  (   self							,  lowerCAmelCase_) ->      List[Any]:



      """simple docstring"""







      if self.config_name == "default":
           logger.warning(
               "Using default BLEURT-Base checkpoint for sequence maximum length 128. "
               "You can use a bigger model for better results with e.g.: datasets.load_metric(\'bleurt\', \'bleurt-large-512\').")
           a_       		='bleurt-base-128'

      if self.config_name.lower() in CHECKPOINT_URLS:
           a_       		=self.config_name.lower()

      elif self.config_name.upper() in CHECKPOINT_URLS:
           a_       		=self.config_name.upper()

      else:
           raise KeyError(
               f"""{self.config_name} model not found. You should supply the name of a model checkpoint for bleurt in {CHECKPOINT_URLS.keys()}""")

      # download the model checkpoint specified by self.config_name and set up the scorer
      a_       		=dl_manager.download_and_extract(CHECKPOINT_URLS[checkpoint_name])
      a_       		=score.BleurtScorer(os.path.join(UpperCamelCase__							,  UpperCamelCase__))




 def       lowercase_  (   self							,  lowerCAmelCase_							,  lowerCAmelCase_) ->      Any:



      """simple docstring"""







      a_       		=self.scorer.score(references=UpperCamelCase__							,  candidates=UpperCamelCase__)
      return {"scores": scores}







'''simple docstring'''


from collections.abc import Generator






def  UpperCAmelCase_       (		):


     '''simple docstring'''







     a_		,						a_       		=0, 1
     while True:
          a_		,						a_       		=b, a + b
          yield b






def  UpperCAmelCase_       (		lowercase__ = 1_0_0_0       ):


     '''simple docstring'''







     a_       		=1
     a_       		=fibonacci_generator()
     while len(str(next(lowercase__       )       )       ) < n:
          answer += 1
     return answer + 1


if __name__ == "__main__":
  print(solution(int(str(input()).strip())))


