


'''simple docstring'''






import argparse
import os

import torch

from transformers.utils import WEIGHTS_NAME


__UpperCAmelCase       							=				['''small''', '''medium''', '''large''']

__UpperCAmelCase       							=				'''lm_head.decoder.weight'''
__UpperCAmelCase       							=				'''lm_head.weight'''


def    _snake_case  (	A					,       A			)		->       Any:
							lowerCAmelCase__			  =      torch.load(A			)
							lowerCAmelCase__			  =      d.pop(A			)
							os.makedirs(A					,       exist_ok=A			)
							torch.save(A					,       os.path.join(A					,       A			)			)


if __name__ == "__main__":
		__UpperCAmelCase       							=				argparse.ArgumentParser()
		parser.add_argument('''--dialogpt_path''', default='''.''', type=str)
		__UpperCAmelCase       							=				parser.parse_args()
		for MODEL in DIALOGPT_MODELS:
				__UpperCAmelCase       							=				os.path.join(args.dialogpt_path, f"""{MODEL}_ft.pkl""")
				__UpperCAmelCase       							=				f"""./DialoGPT-{MODEL}"""
				convert_dialogpt_checkpoint(
				    checkpoint_path,
				    pytorch_dump_folder_path,
				)



'''simple docstring'''






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

														return sequence[n]


def    _snake_case  (	A			)		->       int:
							lowerCAmelCase__			  =      0
							lowerCAmelCase__			  =      2

							while digits < n:
														index += 1
														lowerCAmelCase__			  =      len(str(fibonacci(A			)			)			)

							return index


def    _snake_case  (	A = 1000			)		->       int:
							return fibonacci_digits_index(A			)


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