

'''simple docstring'''




def    lowerCamelCase__		(    SCREAMING_SNAKE_CASE   : List[Any]    ):
  UpperCAmelCase    				=						0
  UpperCAmelCase    				=						len(SCREAMING_SNAKE_CASE    )

  for i in range(n - 1    ):
    for j in range(i + 1							, SCREAMING_SNAKE_CASE    ):
      if arr[i] > arr[j]:
        num_inversions += 1

  return num_inversions


def    lowerCamelCase__		(    SCREAMING_SNAKE_CASE   : List[Any]    ):
  if len(SCREAMING_SNAKE_CASE    ) <= 1:
    return arr, 0
  UpperCAmelCase    				=						len(SCREAMING_SNAKE_CASE    ) // 2
  UpperCAmelCase    				=						arr[0:mid]
  UpperCAmelCase    				=						arr[mid:]

  UpperCAmelCase				,   UpperCAmelCase    				=						count_inversions_recursive(SCREAMING_SNAKE_CASE    )
  UpperCAmelCase				,   UpperCAmelCase    				=						count_inversions_recursive(SCREAMING_SNAKE_CASE    )
  UpperCAmelCase				,   UpperCAmelCase    				=						_count_cross_inversions(SCREAMING_SNAKE_CASE							, SCREAMING_SNAKE_CASE    )

  UpperCAmelCase    				=						inversion_p + inversions_q + cross_inversions
  return c, num_inversions


def    lowerCamelCase__		(    SCREAMING_SNAKE_CASE   : Dict							, SCREAMING_SNAKE_CASE   : Optional[int]    ):
  UpperCAmelCase    				=						[]
  UpperCAmelCase    				=						UpperCAmelCase    				=						UpperCAmelCase    				=						0
  while i < len(SCREAMING_SNAKE_CASE    ) and j < len(SCREAMING_SNAKE_CASE    ):
    if p[i] > q[j]:
      # if P[1] > Q[j], then P[k] > Q[k] for all  i < k <= len(P)
      # These are all inversions. The claim emerges from the
      # property that P is sorted.
      num_inversion += len(SCREAMING_SNAKE_CASE    ) - i
      r.append(q[j]    )
      j += 1
    else:
      r.append(p[i]    )
      i += 1

  if i < len(SCREAMING_SNAKE_CASE    ):
    r.extend(p[i:]    )
  else:
    r.extend(q[j:]    )

  return r, num_inversion


def    lowerCamelCase__		(    ):
  UpperCAmelCase    				=						[10, 2, 1, 5, 5, 2, 11]

  # this arr has 8 inversions:
  # (10, 2), (10, 1), (10, 5), (10, 5), (10, 2), (2, 1), (5, 2), (5, 2)

  UpperCAmelCase    				=						count_inversions_bf(SCREAMING_SNAKE_CASE    )
  UpperCAmelCase				,   UpperCAmelCase    				=						count_inversions_recursive(SCREAMING_SNAKE_CASE    )

  assert num_inversions_bf == num_inversions_recursive == 8

  print('number of inversions = '							, SCREAMING_SNAKE_CASE    )

  # testing an array with zero inversion (a sorted arr_1)

  arr_a.sort()
  UpperCAmelCase    				=						count_inversions_bf(SCREAMING_SNAKE_CASE    )
  UpperCAmelCase				,   UpperCAmelCase    				=						count_inversions_recursive(SCREAMING_SNAKE_CASE    )

  assert num_inversions_bf == num_inversions_recursive == 0
  print('number of inversions = '							, SCREAMING_SNAKE_CASE    )

  # an empty list should also have zero inversions
  UpperCAmelCase    				=						[]
  UpperCAmelCase    				=						count_inversions_bf(SCREAMING_SNAKE_CASE    )
  UpperCAmelCase				,   UpperCAmelCase    				=						count_inversions_recursive(SCREAMING_SNAKE_CASE    )

  assert num_inversions_bf == num_inversions_recursive == 0
  print('number of inversions = '							, SCREAMING_SNAKE_CASE    )


if __name__ == "__main__":
  main()





'''simple docstring'''




from __future__ import annotations


def    lowerCamelCase__		(    SCREAMING_SNAKE_CASE   : int | str    ):
  UpperCAmelCase    				=						str(SCREAMING_SNAKE_CASE    )
  return n == n[::-1]


def    lowerCamelCase__		(    SCREAMING_SNAKE_CASE   : int = 100_0000    ):
  UpperCAmelCase    				=						0

  for i in range(1							, SCREAMING_SNAKE_CASE    ):
    if is_palindrome(SCREAMING_SNAKE_CASE    ) and is_palindrome(bin(SCREAMING_SNAKE_CASE    ).split('b'    )[1]    ):
      total += i
  return total


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


