



import tempfile
import unittest

from make_student import create_student_by_copying_alternating_layers

from transformers import AutoConfig
from transformers.file_utils import cached_property
from transformers.testing_utils import require_torch


__lowerCamelCase  :				str					=					'sshleifer/bart-tiny-random'
__lowerCamelCase  :				int					=					'patrickvonplaten/t5-tiny-random'





@require_torch
class 			__magic_name__ (				unittest.TestCase    ):






		@cached_property
		def SCREAMING_SNAKE_CASE_      (    self   :  int   )					->       List[Any]:
								'''simple docstring'''







								return AutoConfig.from_pretrained(SCREAMING_SNAKE_CASE_   )






		def SCREAMING_SNAKE_CASE_      (    self   :  Any   )					->       Dict:
								'''simple docstring'''







								UpperCAmelCase								=  create_student_by_copying_alternating_layers(SCREAMING_SNAKE_CASE_					,		tempfile.mkdtemp()					,		e=1					,		d=1   )
								self.assertEqual(student.config.num_hidden_layers					,		1   )






		def SCREAMING_SNAKE_CASE_      (    self   :  Optional[int]   )					->       List[str]:
								'''simple docstring'''







								UpperCAmelCase								=  create_student_by_copying_alternating_layers(SCREAMING_SNAKE_CASE_					,		tempfile.mkdtemp()					,		e=1					,		d=SCREAMING_SNAKE_CASE_   )






		def SCREAMING_SNAKE_CASE_      (    self   :  Tuple   )					->       Tuple:
								'''simple docstring'''







								UpperCAmelCase								=  create_student_by_copying_alternating_layers(SCREAMING_SNAKE_CASE_					,		tempfile.mkdtemp()					,		e=1					,		d=SCREAMING_SNAKE_CASE_   )
								self.assertEqual(student.config.encoder_layers					,		1   )
								self.assertEqual(student.config.decoder_layers					,		self.teacher_config.encoder_layers   )






		def SCREAMING_SNAKE_CASE_      (    self   :  Tuple   )					->       Optional[int]:
								'''simple docstring'''







								UpperCAmelCase								=  create_student_by_copying_alternating_layers(SCREAMING_SNAKE_CASE_					,		tempfile.mkdtemp()					,		e=1					,		d=1   )
								self.assertEqual(student.config.encoder_layers					,		1   )
								self.assertEqual(student.config.decoder_layers					,		1   )







		def SCREAMING_SNAKE_CASE_      (    self   :  List[str]   )					->       Any:
								'''simple docstring'''







								with self.assertRaises(SCREAMING_SNAKE_CASE_   ):
														create_student_by_copying_alternating_layers(SCREAMING_SNAKE_CASE_					,		tempfile.mkdtemp()					,		e=SCREAMING_SNAKE_CASE_					,		d=SCREAMING_SNAKE_CASE_   )








def  lowerCAmelCase_	(lowerCAmelCase__:		int  ):





			"""simple docstring"""


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

						return sequence[n]







def  lowerCAmelCase_	(lowerCAmelCase__:		int  ):





			"""simple docstring"""


			UpperCAmelCase_:		str							      =     0
			UpperCAmelCase_:		str							      =     2

			while digits < n:
						index += 1
						UpperCAmelCase_:		Union[str, Any]							      =     len(str(fibonacci(lowerCAmelCase__  )  )  )

			return index







def  lowerCAmelCase_	(lowerCAmelCase__:		int = 1_0_0_0  ):





			"""simple docstring"""


			return fibonacci_digits_index(lowerCAmelCase__  )


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






