



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


UpperCAmelCase__			:   Tuple      			=    logging.get_logger(__name__)

UpperCAmelCase__			:   Any      			=    {
    """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 							lowerCAmelCase_		(		lowercase_							,		lowercase_     ):
		SCREAMING_SNAKE_CASE_       :			List[str]					       =	"convnext"







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


						'''simple docstring'''







						super().__init__(**UpperCAmelCase_					)

						_UpperCAmelCase						:  str     					=	num_channels
						_UpperCAmelCase						:  Dict     					=	patch_size
						_UpperCAmelCase						:  Union[str, Any]     					=	num_stages
						_UpperCAmelCase						:  Optional[int]     					=	[96, 192, 384, 768] if hidden_sizes is None else hidden_sizes
						_UpperCAmelCase						:  List[str]     					=	[3, 3, 9, 3] if depths is None else depths
						_UpperCAmelCase						:  str     					=	hidden_act
						_UpperCAmelCase						:  Union[str, Any]     					=	initializer_range
						_UpperCAmelCase						:  List[str]     					=	layer_norm_eps
						_UpperCAmelCase						:  Union[str, Any]     					=	layer_scale_init_value
						_UpperCAmelCase						:  Optional[Any]     					=	drop_path_rate
						_UpperCAmelCase						:  Optional[int]     					=	image_size
						_UpperCAmelCase						:  Tuple     					=	["""stem"""] + [F'''stage{idx}''' for idx in range(1       ,		len(self.depths					) + 1					)]
						_UpperCAmelCase						:  Dict     					=	get_aligned_output_features_output_indices(
						    out_features=UpperCAmelCase_       ,		out_indices=UpperCAmelCase_       ,		stage_names=self.stage_names					)





class 							lowerCAmelCase_		(		lowercase_     ):
		SCREAMING_SNAKE_CASE_       :			str					       =	version.parse("""1.11"""     )







		@property
		def 					a_  (    self  :   Optional[Any]					)       ->		Any:


						'''simple docstring'''







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







		@property
		def 					a_  (    self  :   Optional[int]					)       ->		Any:


						'''simple docstring'''







						return 1E-5





"""simple docstring"""







from math import floor, sqrt


def  __SCREAMING_SNAKE_CASE (  __UpperCAmelCase      ):
		_lowercase				: Optional[int]     =   0.0
		_lowercase				: Dict     =   1.0
		_lowercase				: Optional[int]     =   int(sqrt(__UpperCAmelCase      )      )
		_lowercase				: Optional[Any]     =   root
		_lowercase				: Dict     =   0
		while integer_part != 2 * root:
				_lowercase				: str     =   denominator * integer_part - numerator
				_lowercase				: Optional[int]     =   (n - numerator**2) / denominator
				_lowercase				: List[str]     =   int((root + numerator) / denominator      )
				period += 1
		return period


def  __SCREAMING_SNAKE_CASE (  __UpperCAmelCase = 10000      ):
		_lowercase				: List[str]     =   0
		for i in range(2   ,				n + 1      ):
				_lowercase				: Dict     =   sqrt(__UpperCAmelCase      )
				if sr - floor(__UpperCAmelCase      ) != 0 and continuous_fraction_period(__UpperCAmelCase      ) % 2 == 1:
						count_odd_periods += 1
		return count_odd_periods


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



