






from math import floor, sqrt






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






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


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










class 					a					:



      """simple docstring"""


      def __init__(   self      :    int	,   __lowercase      :    int      )							->   None:
        __UpperCAmelCase							:			str     =						data
        __UpperCAmelCase							:			BinaryTreeNode | None     =						None
        __UpperCAmelCase							:			BinaryTreeNode | None     =						None






def        lowerCamelCase__   (					__lowerCamelCase    :  BinaryTreeNode | None						,	__lowerCamelCase    :  int	):
  if node is None:
    __UpperCAmelCase							:			Optional[int]     =						BinaryTreeNode(__lowerCamelCase	)
    return node

  # binary search tree is not empty,
  # so we will insert it into the tree
  # if new_value is less than value of data in node,
  #  add it to left subtree and proceed recursively
  if new_value < node.data:
    __UpperCAmelCase							:			int     =						insert(node.left_child						,	__lowerCamelCase	)
  else:
    # if new_value is greater than value of data in node,
    #  add it to right subtree and proceed recursively
    __UpperCAmelCase							:			Dict     =						insert(node.right_child						,	__lowerCamelCase	)
  return node






def        lowerCamelCase__   (					__lowerCamelCase    :  None | BinaryTreeNode	):  # if node is None,return
  if node:
    __UpperCAmelCase							:			Optional[Any]     =						inorder(node.left_child	)
    __UpperCAmelCase							:			str     =						[*inorder_array, node.data]
    __UpperCAmelCase							:			Optional[Any]     =						inorder_array + inorder(node.right_child	)
  else:
    __UpperCAmelCase							:			Tuple     =						[]
  return inorder_array






def        lowerCamelCase__   (					):
  __UpperCAmelCase							:			Any     =						insert(__lowerCamelCase						,	15	)
  insert(__lowerCamelCase						,	10	)
  insert(__lowerCamelCase						,	25	)
  insert(__lowerCamelCase						,	6	)
  insert(__lowerCamelCase						,	14	)
  insert(__lowerCamelCase						,	20	)
  insert(__lowerCamelCase						,	60	)
  return root






def        lowerCamelCase__   (					):
  # main function
  __UpperCAmelCase							:			int     =						make_tree()
  print("""Printing values of binary search tree in Inorder Traversal."""	)
  inorder(__lowerCamelCase	)


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       main()


