import unittest

from transformers import is_flax_available
from transformers.testing_utils import require_flax, require_sentencepiece, require_tokenizers, require_torch, slow


if is_flax_available():
		import optax
		from flax.training.common_utils import onehot

		from transformers import AutoTokenizer, FlaxMTaForConditionalGeneration
		from transformers.models.ta.modeling_flax_ta import shift_tokens_right






@require_torch
@require_sentencepiece
@require_tokenizers
@require_flax
class 		a__						(					unittest.TestCase					):

					@slow
					def 				__UpperCamelCase   (    self      :       List[str]    ):







							"""simple docstring"""






							SCREAMING_SNAKE_CASE_  :		Optional[Any]				      =    FlaxMTaForConditionalGeneration.from_pretrained("google/mt5-small"    )
							SCREAMING_SNAKE_CASE_  :		str				      =    AutoTokenizer.from_pretrained("google/mt5-small"    )

							SCREAMING_SNAKE_CASE_  :		List[str]				      =    tokenizer("Hello there",return_tensors="np"    ).input_ids
							SCREAMING_SNAKE_CASE_  :		str				      =    tokenizer("Hi I am",return_tensors="np"    ).input_ids

							SCREAMING_SNAKE_CASE_  :		List[str]				      =    shift_tokens_right(_A,model.config.pad_token_id,model.config.decoder_start_token_id    )

							SCREAMING_SNAKE_CASE_  :		str				      =    model(_A,decoder_input_ids=_A    ).logits
							SCREAMING_SNAKE_CASE_  :		Dict				      =    optax.softmax_cross_entropy(_A,onehot(_A,logits.shape[-1]    )    ).mean()

							SCREAMING_SNAKE_CASE_  :		Any				      =    -(labels.shape[-1] * loss.item())

							SCREAMING_SNAKE_CASE_  :		List[str]				      =    -84.9127
							self.assertTrue(abs(mtf_score - EXPECTED_SCORE    ) < 1E-4    )






"""simple docstring"""




from collections.abc import Generator



def     a__ (				)						->					Generator[int, None, None]:
			lowerCamelCase      ,   lowerCamelCase			      =					0, 1
			while True:
						lowerCamelCase      ,   lowerCamelCase			      =					b, a + b
						yield b



def     a__ (				snake_case__ = 10_00				)						->					int:
			lowerCamelCase			      =					1
			lowerCamelCase			      =					fibonacci_generator()
			while len(str(next(snake_case__				)				)				) < n:
						answer += 1
			return answer + 1


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



