'''simple docstring'''




from __future__ import annotations

import random
from collections.abc import Iterable
from typing import Any, Generic, TypeVar

_A										= TypeVar('T', bound=bool)


class    UpperCAmelCase__	(							Generic[T]      ):






   """simple docstring"""
   def __init__(self							,					_a					)     ->  None:
        lowercase_       :							T  					=       value
        lowercase_       :							RandomizedHeapNode[T] | None  					=       None
        lowercase_       :							RandomizedHeapNode[T] | None  					=       None
   @property
   def 		_lowerCamelCase			(self					)     ->  T:
        return self._value





   @staticmethod
   def 		_lowerCamelCase			(_a							,					_a					)     ->  RandomizedHeapNode[T] | None:
        if not roota:
             return roota

        if not roota:
             return roota

        if roota.value > roota.value:
             lowercase_					,lowercase_       :							Tuple  					=       roota, roota

        if random.choice([True, False]					):
             lowercase_					,lowercase_       :							int  					=       roota.right, roota.left

        lowercase_       :							Optional[int]  					=       RandomizedHeapNode.merge(roota.left							,					_a					)

        return roota



class    UpperCAmelCase__	(							Generic[T]      ):






   """simple docstring"""
   def __init__(self							,					_a = ()					)     ->  None:
        lowercase_       :							RandomizedHeapNode[T] | None  					=       None

        if data:
             for item in data:
                  self.insert(_a					)
   def 		_lowerCamelCase			(self							,					_a					)     ->  None:
        lowercase_       :							List[Any]  					=       RandomizedHeapNode.merge(self._root							,					RandomizedHeapNode(_a					)					)
   def 		_lowerCamelCase			(self					)     ->  T | None:
        lowercase_       :							Union[str, Any]  					=       self.top()

        if self._root is None:
             return None

        lowercase_       :							List[Any]  					=       RandomizedHeapNode.merge(self._root.left							,					self._root.right					)

        return result
   def 		_lowerCamelCase			(self					)     ->  T:
        if not self._root:
             raise IndexError('Can\'t get top element for the empty heap.'					)
        return self._root.value
   def 		_lowerCamelCase			(self					)     ->  None:
        lowercase_       :							Optional[Any]  					=       None
   def 		_lowerCamelCase			(self					)     ->  list[Any]:
        lowercase_       :							Optional[Any]  					=       []
        while self:
             result.append(self.pop()					)

        return result





   def __bool__(self					)     ->  bool:
        return self._root is not None


if __name__ == "__main__":
 import doctest

 doctest.testmod()





'''simple docstring'''




def _UpperCamelCase (							SCREAMING_SNAKE_CASE_ = 1_000				):
     lowercase_       :							Tuple  					=       [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)
     lowercase_       :							List[Any]  					=       [0, 0, 6, 6, 5, 5, 5, 7, 6, 6]

     lowercase_       :							Optional[Any]  					=       0

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

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

               if 0 < i % 100 < 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 % 100]
               else:
                    # add number of letters for twenty, twenty one, ..., ninety
                    # nine
                    count += ones_counts[i % 10]
                    count += tens_counts[(i % 100 - i % 10) // 10]
          else:
               count += ones_counts[i // 1_000] + 8
     return count


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




