

def 					__lowercase      (     _A			)     ->						List[Any]:
      SCREAMING_SNAKE_CASE :      Optional[int]       =   len(_A			)
      SCREAMING_SNAKE_CASE :      Optional[int]       =   sum(_A			)

      SCREAMING_SNAKE_CASE :      List[Any]       =   [[False for x in range(s + 1			)] for y in range(n + 1			)]

      for i in range(1						,    n + 1			):
            SCREAMING_SNAKE_CASE :      List[Any]       =   True

      for i in range(1						,    s + 1			):
            SCREAMING_SNAKE_CASE :      str       =   False

      for i in range(1						,    n + 1			):
            for j in range(1						,    s + 1			):
                  SCREAMING_SNAKE_CASE :      List[Any]       =   dp[i][j - 1]

                  if arr[i - 1] <= j:
                        SCREAMING_SNAKE_CASE :      Union[str, Any]       =   dp[i][j] or dp[i - 1][j - arr[i - 1]]

      for j in range(int(s / 2			)						,    -1						,    -1			):
            if dp[n][j] is True:
                  SCREAMING_SNAKE_CASE :      Dict       =   s - 2 * j
                  break

      return diff







def 					__lowercase      (     _A = 50			)     ->						int:
      SCREAMING_SNAKE_CASE :      Tuple       =   [1] * (length + 1)

      for row_length in range(3						,    length + 1			):
            for block_length in range(3						,    row_length + 1			):
                  for block_start in range(row_length - block_length			):
                        ways_number[row_length] += ways_number[
                            row_length - block_start - block_length - 1
                        ]

                  ways_number[row_length] += 1

      return ways_number[length]


if __name__ == "__main__":
  print(F"""{solution() = }""")




