


from __future__ import annotations
def       UpperCamelCase__     (  SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__						):

 # Base Case
 if counter == 0 or capacity == 0:
  return 0

 # If weight of the nth item is more than Knapsack of capacity,
 #   then this item cannot be included in the optimal solution,
 # else return the maximum of two cases:
 #   (1) nth item included
 #   (2) not included
 if weights[counter - 1] > capacity:
  return knapsack(SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       counter - 1						)
 else:
  __lowerCamelCase		:							Union[str, Any]							=						capacity - weights[counter - 1]
  __lowerCamelCase		:							str							=						values[counter - 1] + knapsack(
      SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       counter - 1						)
  __lowerCamelCase		:							Tuple							=						knapsack(SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__			,       counter - 1						)
  return max(SCREAMING_SNAKE_CASE__			,       SCREAMING_SNAKE_CASE__						)


if __name__ == "__main__":
       import doctest

       doctest.testmod()





def       UpperCamelCase__     (  SCREAMING_SNAKE_CASE__ = 100						):
 __lowerCamelCase		:							List[Any]							=						[[0 for _ in range(SCREAMING_SNAKE_CASE__						)] for _ in range(m + 1						)]
 for i in range(m + 1						):
  __lowerCamelCase		:							Any							=						1

 for n in range(m + 1						):
  for k in range(1			,       SCREAMING_SNAKE_CASE__						):
   memo[n][k] += memo[n][k - 1]
   if n > k:
    memo[n][k] += memo[n - k - 1][k]

 return memo[m][m - 1] - 1


if __name__ == "__main__":
       print(solution(int(input('Enter a number: ').strip())))

