




'''simple docstring'''


import re
import string

import numpy as np

import datasets


_snake_case   :   Union[str, Any]     							=	'''
Returns the rate at which the input predicted strings exactly match their references, ignoring any strings input as part of the regexes_to_ignore list.
'''

_snake_case   :   Optional[Any]     							=	'''
Args:
    predictions: List of predicted texts.
    references: List of reference texts.
    regexes_to_ignore: List, defaults to None. Regex expressions of characters to
        ignore when calculating the exact matches. Note: these regexes are removed
        from the input data before the changes based on the options below (e.g. ignore_case,
        ignore_punctuation, ignore_numbers) are applied.
    ignore_case: Boolean, defaults to False. If true, turns everything
        to lowercase so that capitalization differences are ignored.
    ignore_punctuation: Boolean, defaults to False. If true, removes all punctuation before
        comparing predictions and references.
    ignore_numbers: Boolean, defaults to False. If true, removes all punctuation before
        comparing predictions and references.
Returns:
    exact_match: Dictionary containing exact_match rate. Possible values are between 0.0 and 100.0, inclusive.
Examples:
    >>> exact_match = datasets.load_metric("exact_match")
    >>> refs = ["the cat", "theater", "YELLING", "agent007"]
    >>> preds = ["cat?", "theater", "yelling", "agent"]
    >>> results = exact_match.compute(references=refs, predictions=preds)
    >>> print(round(results["exact_match"], 1))
    25.0

    >>> exact_match = datasets.load_metric("exact_match")
    >>> refs = ["the cat", "theater", "YELLING", "agent007"]
    >>> preds = ["cat?", "theater", "yelling", "agent"]
    >>> results = exact_match.compute(references=refs, predictions=preds, regexes_to_ignore=["the ", "yell"], ignore_case=True, ignore_punctuation=True)
    >>> print(round(results["exact_match"], 1))
    50.0


    >>> exact_match = datasets.load_metric("exact_match")
    >>> refs = ["the cat", "theater", "YELLING", "agent007"]
    >>> preds = ["cat?", "theater", "yelling", "agent"]
    >>> results = exact_match.compute(references=refs, predictions=preds, regexes_to_ignore=["the ", "yell", "YELL"], ignore_case=True, ignore_punctuation=True)
    >>> print(round(results["exact_match"], 1))
    75.0

    >>> exact_match = datasets.load_metric("exact_match")
    >>> refs = ["the cat", "theater", "YELLING", "agent007"]
    >>> preds = ["cat?", "theater", "yelling", "agent"]
    >>> results = exact_match.compute(references=refs, predictions=preds, regexes_to_ignore=["the ", "yell", "YELL"], ignore_case=True, ignore_punctuation=True, ignore_numbers=True)
    >>> print(round(results["exact_match"], 1))
    100.0

    >>> exact_match = datasets.load_metric("exact_match")
    >>> refs = ["The cat sat on the mat.", "Theaters are great.", "It\'s like comparing oranges and apples."]
    >>> preds = ["The cat sat on the mat?", "Theaters are great.", "It\'s like comparing apples and oranges."]
    >>> results = exact_match.compute(references=refs, predictions=preds)
    >>> print(round(results["exact_match"], 1))
    33.3

'''

_snake_case   :   List[Any]     							=	'''
'''

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







							def      __lowerCAmelCase    (						self :						List[Any]      )    ->							Any:


														"""simple docstring"""


														return datasets.MetricInfo(
														    description=_DESCRIPTION							,    citation=_CITATION							,    inputs_description=_KWARGS_DESCRIPTION							,    features=datasets.Features(
														        {
														            '''predictions''': datasets.Value('''string'''							,    id='''sequence'''      ),
														            '''references''': datasets.Value('''string'''							,    id='''sequence'''      ),
														        }      )							,    reference_urls=[]							,    )







							def      __lowerCAmelCase    (						self :						Any							,    lowerCAmelCase_ :						str							,    lowerCAmelCase_ :						int							,    lowerCAmelCase_ :						Union[str, Any]=None							,    lowerCAmelCase_ :						str=False							,    lowerCAmelCase_ :						Dict=False							,    lowerCAmelCase_ :						Tuple=False							,    )    ->							str:


														"""simple docstring"""


														if regexes_to_ignore is not None:
																					for s in regexes_to_ignore:
																												_a			  =       np.array([re.sub(__lowerCAmelCase							,    ''''''							,    __lowerCAmelCase      ) for x in predictions]      )
																												_a			  =       np.array([re.sub(__lowerCAmelCase							,    ''''''							,    __lowerCAmelCase      ) for x in references]      )
														else:
																					_a			  =       np.asarray(__lowerCAmelCase      )
																					_a			  =       np.asarray(__lowerCAmelCase      )

														if ignore_case:
																					_a			  =       np.char.lower(__lowerCAmelCase      )
																					_a			  =       np.char.lower(__lowerCAmelCase      )

														if ignore_punctuation:
																					_a			  =       string.punctuation.maketrans(''''''							,    ''''''							,    string.punctuation      )
																					_a			  =       np.char.translate(__lowerCAmelCase							,    table=__lowerCAmelCase      )
																					_a			  =       np.char.translate(__lowerCAmelCase							,    table=__lowerCAmelCase      )

														if ignore_numbers:
																					_a			  =       string.digits.maketrans(''''''							,    ''''''							,    string.digits      )
																					_a			  =       np.char.translate(__lowerCAmelCase							,    table=__lowerCAmelCase      )
																					_a			  =       np.char.translate(__lowerCAmelCase							,    table=__lowerCAmelCase      )

														_a			  =       predictions == references

														return {"exact_match": np.mean(__lowerCAmelCase      ) * 1_00}







'''simple docstring'''


def 	snake_case_					(UpperCamelCase :						int   ):





							'''simple docstring'''


							if n == 1 or not isinstance(UpperCamelCase				,		UpperCamelCase   ):
														return 0
							elif n == 2:
														return 1
							else:
														_a			  =       [0, 1]
														for i in range(2				,		n + 1   ):
																					sequence.append(sequence[i - 1] + sequence[i - 2]   )

														return sequence[n]
def 	snake_case_					(UpperCamelCase :						int   ):





							'''simple docstring'''


							_a			  =       0
							_a			  =       2

							while digits < n:
														index += 1
														_a			  =       len(str(fibonacci(UpperCamelCase   )   )   )

							return index
def 	snake_case_					(UpperCamelCase :						int = 1000   ):





							'''simple docstring'''


							return fibonacci_digits_index(UpperCamelCase   )


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

