

from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_a			=       logging.get_logger(__name__)

_a			=       {
    '''nghuyong/ernie-1.0-base-zh''': '''https://huggingface.co/nghuyong/ernie-1.0-base-zh/resolve/main/config.json''',
    '''nghuyong/ernie-2.0-base-en''': '''https://huggingface.co/nghuyong/ernie-2.0-base-en/resolve/main/config.json''',
    '''nghuyong/ernie-2.0-large-en''': '''https://huggingface.co/nghuyong/ernie-2.0-large-en/resolve/main/config.json''',
    '''nghuyong/ernie-3.0-base-zh''': '''https://huggingface.co/nghuyong/ernie-3.0-base-zh/resolve/main/config.json''',
    '''nghuyong/ernie-3.0-medium-zh''': '''https://huggingface.co/nghuyong/ernie-3.0-medium-zh/resolve/main/config.json''',
    '''nghuyong/ernie-3.0-mini-zh''': '''https://huggingface.co/nghuyong/ernie-3.0-mini-zh/resolve/main/config.json''',
    '''nghuyong/ernie-3.0-micro-zh''': '''https://huggingface.co/nghuyong/ernie-3.0-micro-zh/resolve/main/config.json''',
    '''nghuyong/ernie-3.0-nano-zh''': '''https://huggingface.co/nghuyong/ernie-3.0-nano-zh/resolve/main/config.json''',
    '''nghuyong/ernie-gram-zh''': '''https://huggingface.co/nghuyong/ernie-gram-zh/resolve/main/config.json''',
    '''nghuyong/ernie-health-zh''': '''https://huggingface.co/nghuyong/ernie-health-zh/resolve/main/config.json''',
}






class 							A_			(		snake_case__ ):
     _lowercase      :					str       =     'ernie'


     def __init__(							self      :		List[str]      ,  UpperCAmelCase      :		Dict=3_0_5_2_2      ,  UpperCAmelCase      :		Union[str, Any]=7_6_8      ,  UpperCAmelCase      :		str=1_2      ,  UpperCAmelCase      :		int=1_2      ,  UpperCAmelCase      :		int=3_0_7_2      ,  UpperCAmelCase      :		Optional[int]="gelu"      ,  UpperCAmelCase      :		Dict=0.1      ,  UpperCAmelCase      :		int=0.1      ,  UpperCAmelCase      :		Union[str, Any]=5_1_2      ,  UpperCAmelCase      :		List[str]=2      ,  UpperCAmelCase      :		Any=3      ,  UpperCAmelCase      :		Any=False      ,  UpperCAmelCase      :		int=0.02      ,  UpperCAmelCase      :		Optional[Any]=1E-12      ,  UpperCAmelCase      :		Optional[Any]=0      ,  UpperCAmelCase      :		int="absolute"      ,  UpperCAmelCase      :		List[Any]=True      ,  UpperCAmelCase      :		Tuple=None      ,  **UpperCAmelCase      :		str      ,  )							->     Dict:
      super().__init__(pad_token_id=UpperCAmelCase      ,  **UpperCAmelCase )

      __lowerCAmelCase:       int            =				vocab_size
      __lowerCAmelCase:       List[str]            =				hidden_size
      __lowerCAmelCase:       Any            =				num_hidden_layers
      __lowerCAmelCase:       Dict            =				num_attention_heads
      __lowerCAmelCase:       List[Any]            =				hidden_act
      __lowerCAmelCase:       Tuple            =				intermediate_size
      __lowerCAmelCase:       str            =				hidden_dropout_prob
      __lowerCAmelCase:       List[str]            =				attention_probs_dropout_prob
      __lowerCAmelCase:       Optional[Any]            =				max_position_embeddings
      __lowerCAmelCase:       int            =				type_vocab_size
      __lowerCAmelCase:       Any            =				task_type_vocab_size
      __lowerCAmelCase:       Union[str, Any]            =				use_task_id
      __lowerCAmelCase:       Any            =				initializer_range
      __lowerCAmelCase:       Union[str, Any]            =				layer_norm_eps
      __lowerCAmelCase:       Dict            =				position_embedding_type
      __lowerCAmelCase:       Any            =				use_cache
      __lowerCAmelCase:       Any            =				classifier_dropout







class 							A_			(		snake_case__ ):


     @property
     def   UpperCAmelCase  (							self      :		Dict )							->     Mapping[str, Mapping[int, str]]:
      if self.task == "multiple-choice":
       __lowerCAmelCase:       Dict            =				{0: 'batch', 1: 'choice', 2: 'sequence'}
      else:
       __lowerCAmelCase:       int            =				{0: 'batch', 1: 'sequence'}
      return OrderedDict(
          [
              ('input_ids', dynamic_axis),
              ('attention_mask', dynamic_axis),
              ('token_type_ids', dynamic_axis),
              ('task_type_ids', dynamic_axis),
          ] )








def _a			(	SCREAMING_SNAKE_CASE		:      int = 10_00		)   ->   int:

 """simple docstring"""






 __lowerCAmelCase:       Union[str, Any]            =				[0, 3, 3, 5, 4, 4, 3, 5, 5, 4, 3, 6, 6, 8, 8, 7, 7, 9, 8, 8]
 # number of letters in twenty, thirty, ..., ninety (0 for numbers less than
 # 20 due to inconsistency in teens)
 __lowerCAmelCase:       Union[str, Any]            =				[0, 0, 6, 6, 5, 5, 5, 7, 6, 6]

 __lowerCAmelCase:       Optional[int]            =				0

 for i in range(1   , n + 1		):
  if i < 10_00:
   if i >= 1_00:
    # add number of letters for "n hundred"
    count += ones_counts[i // 1_00] + 7

    if i % 1_00 != 0:
     # add number of letters for "and" if number is not multiple
     # of 100
     count += 3

   if 0 < i % 1_00 < 20:
    # add number of letters for one, two, three, ..., nineteen
    # (could be combined with below if not for inconsistency in
    # teens)
    count += ones_counts[i % 1_00]
   else:
    # add number of letters for twenty, twenty one, ..., ninety
    # nine
    count += ones_counts[i % 10]
    count += tens_counts[(i % 1_00 - i % 10) // 10]
  else:
   count += ones_counts[i // 10_00] + 8
 return count


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





