input: 
  def knapSack(W: int, wt: List[int], val: List[int], n: int) -> int:
      """This function finds the maximum value that can be obtained by 
      selecting items without exceeding the knapsack's capacity. The input 
      includes a list of item values, a list of item weights, and the capacity 
      of the knapsack. The function uses a recursive approach to evaluate
      whether to include each item or not.
  
      >>> knapSack(50, [10, 20, 30], [60, 100, 120], 3)
      220
      """
      if n == 0 or W == 0:
          return 0
      if wt[n-1] > W:
          return knapSack(W, wt, val, n-1)
      else:
          return max(val[n-1] + knapSack(W - wt[n-1], wt, val, n-1), 
                     knapSack(W, wt, val, n-1))
  
output:     if n == 0 or W == 0:
          return 0
      if wt[n-1] > W:
          return knapSack(W, wt, val, n-1)
      else:
          return max(val[n-1] + knapSack(W - wt[n-1], wt, val, n-1), 
                     knapSack(W, wt, val, n-1))