



'''simple docstring'''

import unittest

from transformers import is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow, torch_device


if is_torch_available():
		import torch

		from transformers import CamembertModel



@require_torch
@require_sentencepiece
@require_tokenizers
class 		lowerCamelCase__   (    unittest.TestCase  ):




					'''simple docstring'''



					@slow
					def     __UpperCAmelCase  (	self					:						Optional[Any]       )	->							List[str]:



						'''simple docstring'''





						_lowercase       :							List[Any]  	=		CamembertModel.from_pretrained('camembert-base'       )
						model.to(UpperCamelCase_       )

						_lowercase       :							Optional[int]  	=		torch.tensor(
						    [[5, 121, 11, 660, 16, 730, 2_5543, 110, 83, 6]]  ,	device=UpperCamelCase_  ,	dtype=torch.long  ,	)  # J'aime le camembert !
						with torch.no_grad():
							_lowercase       :							Tuple  	=		model(UpperCamelCase_       )['last_hidden_state']
						_lowercase       :							Optional[int]  	=		torch.Size((1, 10, 768)       )
						self.assertEqual(output.shape  ,	UpperCamelCase_       )
						# compare the actual values for a slice.
						_lowercase       :							List[str]  	=		torch.tensor(
						    [[[-0.02_54, 0.02_35, 0.10_27], [0.06_06, -0.18_11, -0.04_18], [-0.15_61, -0.11_27, 0.26_87]]]  ,	device=UpperCamelCase_  ,	dtype=torch.float  ,	)
						# camembert = torch.hub.load('pytorch/fairseq', 'camembert.v0')
						# camembert.eval()
						# expected_slice = roberta.model.forward(input_ids)[0][:, :3, :3].detach()

						self.assertTrue(torch.allclose(output[:, :3, :3]  ,	UpperCamelCase_  ,	atol=1E-4       )       )





'''simple docstring'''

def     __UpperCamelCase					(				_lowercase = 1000       )			->      int:
	_lowercase       :							Optional[int]  	=		[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       :							Any  	=		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())))
