input: from typing import Callable, Dict, Any
  
  def optimize(fn: Callable[[Any], int], params: Dict[str, int]) -> Dict[str, int]:
      """Optimizes the given function by iterating over the parameters within a given range
      and finding the set of parameters that maximizes the function output.
      >>> optimize(lambda x: x['a'] + x['b'] + x['c'], {'a': 1, 'b': 2, 'c': 3})
      {'a': 11, 'b': 2, 'c': 3}
      """
      best_score = 0
      best_params = None
      for a in range(params['a'] - 10, params['a'] + 10):
          for b in range(params['b'] - 10, params['b'] + 10):
              for c in range(params['c'] - 10, params['c'] + 10):
                  score = fn({'a': a, 'b': b, 'c': c})
                  if score > best_score:
                      best_score = score
                      best_params = {'a': a, 'b': b, 'c': c}
      return best_params
output:     best_score = 0
      best_params = None
      for a in range(params['a'] - 10, params['a'] + 10):
          for b in range(params['b'] - 10, params['b'] + 10):
              for c in range(params['c'] - 10, params['c'] + 10):
                  score = fn({'a': a, 'b': b, 'c': c})
                  if score > best_score:
                      best_score = score
                      best_params = {'a': a, 'b': b, 'c': c}
      return best_params