input: Write a function to solve the knapsack problem using brute force and calculate the maximum value that can be carried.
  assert knapsack_brute_force(50, [{'weight': 10, 'value': 60}, {'weight': 20, 'value': 100}, {'weight': 30, 'value': 120}]) == 220
  assert knapsack_brute_force(50, [{'weight': 20, 'value': 40}, {'weight': 30, 'value': 50}, {'weight': 40, 'value': 60}]) == 90
  assert knapsack_brute_force(60, [{'weight': 30, 'value': 90}, {'weight': 20, 'value': 100}, {'weight': 10, 'value': 60}]) == 250
output: def knapsack_brute_force(capacity, items):
      def helper(i, remaining_capacity):
          if i == len(items) or remaining_capacity == 0:
              return 0
          if items[i]['weight'] > remaining_capacity:
              return helper(i + 1, remaining_capacity)
          else:
              return max(helper(i + 1, remaining_capacity),
                         items[i]['value'] + helper(i + 1, remaining_capacity - items[i]['weight']))
      
      return helper(0, capacity)