




'''simple docstring'''




import argparse

import torch

from transformers import GPTaConfig, GPTaModel, load_tf_weights_in_gpta
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()

def       _UpperCamelCase					( SCREAMING_SNAKE_CASE__	:					Tuple				,  SCREAMING_SNAKE_CASE__	:					List[str]				,  SCREAMING_SNAKE_CASE__	:					List[Any]				):
 '''simple docstring'''





 if gpta_config_file == "":
  UpperCAmelCase__								=			GPTaConfig()
 else:
  UpperCAmelCase__								=			GPTaConfig.from_json_file(__lowerCamelCase				)
 UpperCAmelCase__								=			GPTaModel(__lowerCamelCase				)

 # Load weights from numpy
 load_tf_weights_in_gpta(__lowerCamelCase				,  __lowerCamelCase				,  __lowerCamelCase				)

 # Save pytorch-model
 UpperCAmelCase__								=			pytorch_dump_folder_path + "/" + WEIGHTS_NAME
 UpperCAmelCase__								=			pytorch_dump_folder_path + "/" + CONFIG_NAME
 print(F'''Save PyTorch model to {pytorch_weights_dump_path}'''				)
 torch.save(model.state_dict()				,  __lowerCamelCase				)
 print(F'''Save configuration file to {pytorch_config_dump_path}'''				)
 with open(__lowerCamelCase				,  """w"""				,  encoding="""utf-8"""				) as f:
  f.write(config.to_json_string()				)


if __name__ == "__main__":
    UpperCAmelCase_				 =					argparse.ArgumentParser()
    # Required parameters
    parser.add_argument(
        '--gpt2_checkpoint_path', default=None, type=str, required=True, help='Path to the TensorFlow checkpoint path.'
    )
    parser.add_argument(
        '--pytorch_dump_folder_path', default=None, type=str, required=True, help='Path to the output PyTorch model.'
    )
    parser.add_argument(
        '--gpt2_config_file',
        default='',
        type=str,
        help=(
            'An optional config json file corresponding to the pre-trained OpenAI model. \n'
            'This specifies the model architecture.'
        ),
    )
    UpperCAmelCase_				 =					parser.parse_args()
    convert_gpta_checkpoint_to_pytorch(args.gpta_checkpoint_path, args.gpta_config_file, args.pytorch_dump_folder_path)







'''simple docstring'''


def 							UpperCAmelCase_  (						__lowerCamelCase					:					int = 10_00 ):
   lowercase_			,							lowercase_			:str    			= 1, 1
   lowercase_			:Any    			= 2
   while True:
      lowercase_			:str    			= 0
      lowercase_			:Tuple    			= fa + fa
      lowercase_			,							lowercase_			:Tuple    			= fa, f
      index += 1
      for _ in str(__lowerCamelCase ):
         i += 1
      if i == n:
         break
   return index


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


