input: from typing import List, Tuple
  
  def knapSack(W: int, wt: List[int], val: List[int], n: int) -> int:
      """ Given a list of items with their values and weights, and a knapsack with a
      certain capacity, find the maximum value that can be obtained by selecting items
      without exceeding the knapsack's capacity. This is a naive recursive approach.
      
      >>> knapSack(50, [10, 20, 30], [60, 100, 120], 3)
      220
      """
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))