import math




def    lowerCAmelCase_ (     __A							)     ->				int:







      '''simple docstring'''


      if not isinstance(__A,  __A							):
            UpperCAmelCase__								=  f"""Input value of [number={number}] must be an integer"""
            raise TypeError(__A							)

      if number < 1:
            UpperCAmelCase__								=  f"""Input value of [number={number}] must be > 0"""
            raise ValueError(__A							)
      elif number == 1:
            return 3
      elif number == 2:
            return 5
      else:
            UpperCAmelCase__								=  int(math.log(number // 3,  2							)							) + 2

            UpperCAmelCase__								=  [3, 5]
            UpperCAmelCase__								=  2
            UpperCAmelCase__								=  3
            for block in range(1,  __A							):
                  for _ in range(__A							):
                        proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1]							)
                        proth_index += 1
                  increment *= 2

      return proth_list[number - 1]


if __name__ == "__main__":
      import doctest

      doctest.testmod()

      for number in range(1_1):
            UpperCamelCase__											=					0
            try:
                  UpperCamelCase__											=					proth(number)
            except ValueError:
                  print(f'''ValueError: there is no {number}th Proth number''')
                  continue

            print(f'''The {number}th Proth number: {value}''')





from ...configuration_utils import PretrainedConfig
from ...utils import logging


_A   =     logging.get_logger(__name__)

_A   =     {
    # See all MEGATRON_BERT models at https://huggingface.co/models?filter=bert
}





class 	_lowerCAmelCase					(	__a       ):
				_lowercase					='''megatron-bert'''




				def __init__(					self				,				_UpperCamelCase=29_056				,				_UpperCamelCase=1_024				,				_UpperCamelCase=24				,				_UpperCamelCase=16				,				_UpperCamelCase=4_096				,				_UpperCamelCase="gelu"				,				_UpperCamelCase=0.1				,				_UpperCamelCase=0.1				,				_UpperCamelCase=512				,				_UpperCamelCase=2				,				_UpperCamelCase=0.02				,				_UpperCamelCase=1e-1_2				,				_UpperCamelCase=0				,				_UpperCamelCase="absolute"				,				_UpperCamelCase=True				,				**_UpperCamelCase				,				)				->      int:
							super().__init__(pad_token_id=_UpperCamelCase				,				**_UpperCamelCase     )

							lowerCAmelCase_						=	vocab_size
							lowerCAmelCase_						=	hidden_size
							lowerCAmelCase_						=	num_hidden_layers
							lowerCAmelCase_						=	num_attention_heads
							lowerCAmelCase_						=	hidden_act
							lowerCAmelCase_						=	intermediate_size
							lowerCAmelCase_						=	hidden_dropout_prob
							lowerCAmelCase_						=	attention_probs_dropout_prob
							lowerCAmelCase_						=	max_position_embeddings
							lowerCAmelCase_						=	type_vocab_size
							lowerCAmelCase_						=	initializer_range
							lowerCAmelCase_						=	layer_norm_eps
							lowerCAmelCase_						=	position_embedding_type
							lowerCAmelCase_						=	use_cache



