input: def divide_in_two_equal_parts(lst: List[int]) -> Tuple[List[int], List[int]]:
      """
      Divide a given list of numbers into two equal parts such that the difference between the sum
      of the two parts is minimum.
      >>> divide_in_two_equal_parts([2, 3, 4, 5, 6, 7])
      ([2, 3, 4], [5, 6, 7])
      """
output:     total_sum = sum(lst)
      half_sum = total_sum // 2
      n = len(lst)
      dp = [[False] * (half_sum + 1) for _ in range(n + 1)]
      dp[0][0] = True
  
      for i in range(1, n + 1):
          for j in range(half_sum + 1):
              if j >= lst[i - 1]:
                  dp[i][j] = dp[i - 1][j] or dp[i - 1][j - lst[i - 1]]
              else:
                  dp[i][j] = dp[i - 1][j]
  
      for j in range(half_sum, -1, -1):
          if dp[n][j]:
              part1_sum = j
              break
  
      part1 = []
      part2 = lst[:]
      for i in range(n, 0, -1):
          if part1_sum >= lst[i - 1] and dp[i - 1][part1_sum - lst[i - 1]]:
              part1.append(lst[i - 1])
              part2.remove(lst[i - 1])
              part1_sum -= lst[i - 1]
  
      return part1, part2