





'''simple docstring'''






def    lowercase_   (		lowercase__ = 1000    ) ->int:
						_snake_case: 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)
						_snake_case: int	       =		[0, 0, 6, 6, 5, 5, 5, 7, 6, 6]

						_snake_case: int	       =		0

						for i in range(1					,	n + 1    ):
												if i < 1000:
																		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 // 1000] + 8
						return count


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












'''simple docstring'''






import math
from collections.abc import Generator





def    lowercase_   (		lowercase__    ) ->Generator[int, None, None]:
						_snake_case: Generator	       =		(i for i in range(1					,	(max_n + 1)    ))
						for i in (n for n in numbers if n > 1):
												for j in range(2					,	lowercase__    ):
																		if (i % j) == 0:
																								break
												else:
																		yield i





def    lowercase_   (		lowercase__    ) ->Generator[int, None, None]:
						_snake_case: Generator	       =		(i for i in range(1					,	(max_n + 1)    ))
						for i in (n for n in numbers if n > 1):
												# only need to check for factors up to sqrt(i)
												_snake_case: int	       =		int(math.sqrt(lowercase__    )    ) + 1
												for j in range(2					,	lowercase__    ):
																		if (i % j) == 0:
																								break
												else:
																		yield i





def    lowercase_   (		lowercase__    ) ->Generator[int, None, None]:
						_snake_case: Generator	       =		(i for i in range(1					,	(max_n + 1)					,	2    ))
						# It's useless to test even numbers as they will not be prime
						if max_n > 2:
												yield 2  # Because 2 will not be tested, it's necessary to yield it now
						for i in (n for n in numbers if n > 1):
												_snake_case: List[str]	       =		int(math.sqrt(lowercase__    )    ) + 1
												for j in range(3					,	lowercase__					,	2    ):
																		# As we removed the even numbers, we don't need them now
																		if (i % j) == 0:
																								break
												else:
																		yield i





def    lowercase_   (		) ->Optional[int]:
						from timeit import timeit

						_snake_case: Dict	       =		'from __main__ import slow_primes, primes, fast_primes'
						print(timeit('slow_primes(1_000_000_000_000)'					,	setup=lowercase__					,	number=100_0000    )    )
						print(timeit('primes(1_000_000_000_000)'					,	setup=lowercase__					,	number=100_0000    )    )
						print(timeit('fast_primes(1_000_000_000_000)'					,	setup=lowercase__					,	number=100_0000    )    )


if __name__ == "__main__":
		A :			List[str]							   =      int(input('Calculate primes up to:\n>> ').strip())
		for ret in primes(number):
				print(ret)
		benchmark()





