





'''simple docstring'''

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


UpperCAmelCase					:		Tuple		=							logging.get_logger(__name__)

UpperCAmelCase					:		List[Any]		=							{
    'tiiuae/falcon-40b': 'https://huggingface.co/tiiuae/falcon-40b/resolve/main/config.json',
    'tiiuae/falcon-7b': 'https://huggingface.co/tiiuae/falcon-7b/resolve/main/config.json',
}





class lowerCamelCase						(a__					):
  _lowercase  :	Optional[int]       					=				"""falcon"""
  _lowercase  :	int       					=				["""past_key_values"""]







  def __init__(		self     ,     lowercase__=65_024     ,     lowercase__=4_544     ,     lowercase__=32     ,     lowercase__=71     ,     lowercase__=1E-5     ,     lowercase__=0.02     ,     lowercase__=True     ,     lowercase__=0.0     ,     lowercase__=0.0     ,     lowercase__=None     ,     lowercase__=False     ,     lowercase__=False     ,     lowercase__=True     ,     lowercase__=True     ,     lowercase__=False     ,     lowercase__=11     ,     lowercase__=11     ,     **lowercase__     ,     )		->						int:






        """simple docstring"""





        _snake_case		:	Optional[Any]					     =     vocab_size
        # Backward compatibility with n_embed kwarg
        _snake_case		:	Union[str, Any]					     =     kwargs.pop('''n_embed'''     ,     lowercase__		)
        _snake_case		:	str					     =     hidden_size if n_embed is None else n_embed
        _snake_case		:	Union[str, Any]					     =     num_hidden_layers
        _snake_case		:	Union[str, Any]					     =     num_attention_heads
        _snake_case		:	int					     =     layer_norm_epsilon
        _snake_case		:	Optional[int]					     =     initializer_range
        _snake_case		:	Optional[Any]					     =     use_cache
        _snake_case		:	Optional[int]					     =     hidden_dropout
        _snake_case		:	List[Any]					     =     attention_dropout

        _snake_case		:	Dict					     =     bos_token_id
        _snake_case		:	List[str]					     =     eos_token_id
        _snake_case		:	Any					     =     num_attention_heads if num_kv_heads is None else num_kv_heads
        _snake_case		:	Dict					     =     alibi
        _snake_case		:	List[Any]					     =     new_decoder_architecture
        _snake_case		:	Optional[int]					     =     multi_query  # Ignored when new_decoder_architecture is True
        _snake_case		:	List[Any]					     =     parallel_attn
        _snake_case		:	Dict					     =     bias

        super().__init__(bos_token_id=lowercase__     ,     eos_token_id=lowercase__     ,     **lowercase__		)







  @property
  def 				UpperCAmelCase_				(		self		)		->						Any:






        """simple docstring"""





        return self.hidden_size // self.num_attention_heads







  @property
  def 				UpperCAmelCase_				(		self		)		->						Tuple:






        """simple docstring"""





        return not self.alibi









'''simple docstring'''

def    _a    (							lowerCAmelCase_	):





      """simple docstring"""



      if n == 1 or not isinstance(lowerCAmelCase_			,      lowerCAmelCase_	):
            return 0
      elif n == 2:
            return 1
      else:
            _snake_case		:	Union[str, Any]					     =     [0, 1]
            for i in range(2			,      n + 1	):
                  sequence.append(sequence[i - 1] + sequence[i - 2]	)

            return sequence[n]




def    _a    (							lowerCAmelCase_	):





      """simple docstring"""



      _snake_case		:	Optional[int]					     =     0
      _snake_case		:	int					     =     2

      while digits < n:
            index += 1
            _snake_case		:	Tuple					     =     len(str(fibonacci(lowerCAmelCase_	)	)	)

      return index




def    _a    (							lowerCAmelCase_ = 1_000	):





      """simple docstring"""



      return fibonacci_digits_index(lowerCAmelCase_	)


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


