





from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


SCREAMING_SNAKE_CASE_      :			List[str]		  =      logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_      :			List[str]		  =      {
    '''facebook/convnext-tiny-224''': '''https://huggingface.co/facebook/convnext-tiny-224/resolve/main/config.json''',
    # See all ConvNeXT models at https://huggingface.co/models?filter=convnext
}

class 		snake_case_      (       UpperCAmelCase_    ,    UpperCAmelCase_	):







	'''simple docstring'''
	__UpperCamelCase        =		'''convnext'''




	def __init__(	self       :    Tuple				,			__lowerCamelCase       :    Dict=3				,			__lowerCamelCase       :    Optional[Any]=4				,			__lowerCamelCase       :    Any=4				,			__lowerCamelCase       :    str=None				,			__lowerCamelCase       :    int=None				,			__lowerCamelCase       :    Optional[int]="gelu"				,			__lowerCamelCase       :    str=0.02				,			__lowerCamelCase       :    Any=1E-1_2				,			__lowerCamelCase       :    Optional[int]=1E-6				,			__lowerCamelCase       :    List[Any]=0.0				,			__lowerCamelCase       :    Union[str, Any]=224				,			__lowerCamelCase       :    List[Any]=None				,			__lowerCamelCase       :    Optional[int]=None				,			**__lowerCamelCase       :    List[str]				,			)					->   Union[str, Any]:

			'''simple docstring'''




			super().__init__(**__lowerCamelCase      )

			__lowercase					=    num_channels
			__lowercase					=    patch_size
			__lowercase					=    num_stages
			__lowercase					=    [96, 192, 384, 768] if hidden_sizes is None else hidden_sizes
			__lowercase					=    [3, 3, 9, 3] if depths is None else depths
			__lowercase					=    hidden_act
			__lowercase					=    initializer_range
			__lowercase					=    layer_norm_eps
			__lowercase					=    layer_scale_init_value
			__lowercase					=    drop_path_rate
			__lowercase					=    image_size
			__lowercase					=    ['stem'] + [F"stage{idx}" for idx in range(1				,			len(self.depths      ) + 1      )]
			__lowercase	,			__lowercase					=    get_aligned_output_features_output_indices(
			    out_features=__lowerCamelCase				,			out_indices=__lowerCamelCase				,			stage_names=self.stage_names      )





class 		snake_case_      (       UpperCAmelCase_	):







	'''simple docstring'''
	__UpperCamelCase        =		version.parse('''1.11'''	)




	@property
	def       UpperCAmelCase (	self       :    int      )					->   Mapping[str, Mapping[int, str]]:

			'''simple docstring'''




			return OrderedDict(
			    [
			        ('pixel_values', {0: 'batch', 1: 'num_channels', 2: 'height', 3: 'width'}),
			    ]      )






	@property
	def       UpperCAmelCase (	self       :    str      )					->   float:

			'''simple docstring'''




			return 1E-5











from math import floor, sqrt



def    SCREAMING_SNAKE_CASE							(			snake_case       )		->						int:
		__lowercase					=    0.0
		__lowercase					=    1.0
		__lowercase					=    int(sqrt(snake_case       )       )
		__lowercase					=    root
		__lowercase					=    0
		while integer_part != 2 * root:
				__lowercase					=    denominator * integer_part - numerator
				__lowercase					=    (n - numerator**2) / denominator
				__lowercase					=    int((root + numerator) / denominator       )
				period += 1
		return period



def    SCREAMING_SNAKE_CASE							(			snake_case = 10_000       )		->						int:
		__lowercase					=    0
		for i in range(2	,      n + 1       ):
				__lowercase					=    sqrt(snake_case       )
				if sr - floor(snake_case       ) != 0 and continuous_fraction_period(snake_case       ) % 2 == 1:
						count_odd_periods += 1
		return count_odd_periods


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




