


import functools
import operator

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


SCREAMING_SNAKE_CASE			: Dict				   =					logging.get_logger(__name__)

SCREAMING_SNAKE_CASE			: Tuple				   =					{
    "asapp/sew-d-tiny-100k": "https://huggingface.co/asapp/sew-d-tiny-100k/resolve/main/config.json",
    # See all SEW-D models at https://huggingface.co/models?filter=sew-d
}






class _lowerCamelCase(		_a  ):
       lowercase_					:      Any       					=     """sew-d"""
       def __init__(   self, lowerCamelCase=32, lowerCamelCase=7_68, lowerCamelCase=12, lowerCamelCase=12, lowerCamelCase=30_72, lowerCamelCase=2, lowerCamelCase=5_12, lowerCamelCase=2_56, lowerCamelCase=True, lowerCamelCase=True, lowerCamelCase=("p2c", "c2p"), lowerCamelCase="layer_norm", lowerCamelCase="gelu_python", lowerCamelCase=0.1, lowerCamelCase=0.1, lowerCamelCase=0.1, lowerCamelCase=0.0, lowerCamelCase=0.1, lowerCamelCase=0.0_2, lowerCamelCase=1E-7, lowerCamelCase=1E-5, lowerCamelCase="group", lowerCamelCase="gelu", lowerCamelCase=(64, 1_28, 1_28, 1_28, 1_28, 2_56, 2_56, 2_56, 2_56, 5_12, 5_12, 5_12, 5_12), lowerCamelCase=(5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1), lowerCamelCase=(10, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1), lowerCamelCase=False, lowerCamelCase=1_28, lowerCamelCase=16, lowerCamelCase=True, lowerCamelCase=0.0_5, lowerCamelCase=10, lowerCamelCase=2, lowerCamelCase=0.0, lowerCamelCase=10, lowerCamelCase=0, lowerCamelCase="mean", lowerCamelCase=False, lowerCamelCase=False, lowerCamelCase=2_56, lowerCamelCase=0, lowerCamelCase=1, lowerCamelCase=2, **lowerCamelCase, )			->  Optional[int]:




           """simple docstring"""

           super().__init__(**lowerCamelCase, pad_token_id=lowerCamelCase, bos_token_id=lowerCamelCase, eos_token_id=lowerCamelCase)
           _lowercase			:				Union[str, Any] 						=						hidden_size
           _lowercase			:				Dict 						=						feat_extract_norm
           _lowercase			:				str 						=						feat_extract_activation
           _lowercase			:				int 						=						list(lowerCamelCase)
           _lowercase			:				Optional[Any] 						=						list(lowerCamelCase)
           _lowercase			:				Any 						=						list(lowerCamelCase)
           _lowercase			:				List[str] 						=						conv_bias
           _lowercase			:				Tuple 						=						num_conv_pos_embeddings
           _lowercase			:				Dict 						=						num_conv_pos_embedding_groups
           _lowercase			:				Dict 						=						len(self.conv_dim)
           _lowercase			:				int 						=						num_hidden_layers
           _lowercase			:				Optional[Any] 						=						intermediate_size
           _lowercase			:				str 						=						squeeze_factor
           _lowercase			:				Optional[Any] 						=						max_position_embeddings
           _lowercase			:				Tuple 						=						position_buckets
           _lowercase			:				Union[str, Any] 						=						share_att_key
           _lowercase			:				str 						=						relative_attention
           _lowercase			:				List[Any] 						=						norm_rel_ebd
           _lowercase			:				int 						=						list(lowerCamelCase)
           _lowercase			:				Tuple 						=						hidden_act
           _lowercase			:				Union[str, Any] 						=						num_attention_heads
           _lowercase			:				int 						=						hidden_dropout
           _lowercase			:				Optional[Any] 						=						attention_dropout
           _lowercase			:				List[Any] 						=						activation_dropout
           _lowercase			:				Union[str, Any] 						=						feat_proj_dropout
           _lowercase			:				Optional[int] 						=						final_dropout
           _lowercase			:				str 						=						layer_norm_eps
           _lowercase			:				Any 						=						feature_layer_norm_eps
           _lowercase			:				Optional[Any] 						=						initializer_range
           _lowercase			:				Union[str, Any] 						=						vocab_size

           if (
               (len(self.conv_stride) != self.num_feat_extract_layers)
               or (len(self.conv_kernel) != self.num_feat_extract_layers)
               or (len(self.conv_dim) != self.num_feat_extract_layers)
           ):
               raise ValueError(
                   'Configuration for convolutional layers is incorrect.'
                   'It is required that `len(config.conv_dim)` == `len(config.conv_stride)` == `len(config.conv_kernel)`,'
                   F'''but is `len(config.conv_dim) = {len(self.conv_dim)}`, `len(config.conv_stride)'''
                   F'''= {len(self.conv_stride)}`, `len(config.conv_kernel) = {len(self.conv_kernel)}`.''')

           # fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
           _lowercase			:				Any 						=						apply_spec_augment
           _lowercase			:				Dict 						=						mask_time_prob
           _lowercase			:				Optional[int] 						=						mask_time_length
           _lowercase			:				str 						=						mask_time_min_masks
           _lowercase			:				List[str] 						=						mask_feature_prob
           _lowercase			:				List[Any] 						=						mask_feature_length
           _lowercase			:				Tuple 						=						mask_feature_min_masks

           # ctc loss
           _lowercase			:				List[str] 						=						ctc_loss_reduction
           _lowercase			:				Any 						=						ctc_zero_infinity

           # sequence classification
           _lowercase			:				Any 						=						use_weighted_layer_sum
           _lowercase			:				int 						=						classifier_proj_size




       @property
       def      UpperCamelCase	(   self)			->  List[Any]:




           """simple docstring"""

           return functools.reduce(operator.mul, self.conv_stride, 1)






def 							UpperCamelCase_( lowerCamelCase_					)       ->		int:
    if n == 1 or not isinstance(lowerCamelCase_				,					lowerCamelCase_					):
        return 0
    elif n == 2:
        return 1
    else:
        _lowercase			:				List[str] 						=						[0, 1]
        for i in range(2				,					n + 1					):
            sequence.append(sequence[i - 1] + sequence[i - 2]					)

        return sequence[n]



def 							UpperCamelCase_( lowerCamelCase_					)       ->		int:
    _lowercase			:				Tuple 						=						0
    _lowercase			:				List[str] 						=						2

    while digits < n:
        index += 1
        _lowercase			:				Optional[int] 						=						len(str(fibonacci(lowerCamelCase_					)					)					)

    return index



def 							UpperCamelCase_( lowerCamelCase_ = 1000					)       ->		int:
    return fibonacci_digits_index(lowerCamelCase_					)


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


