code: def cancel_base_units(units, to_remove):
      
  
      # Copy the dict since we're about to mutate it
      to_remove = to_remove.copy()
      remaining_units = []
      total_factor = Fraction(1)
  
      for unit in units:
          factor, base_unit = get_conversion_factor(unit)
          if not to_remove.get(base_unit, 0):
              remaining_units.append(unit)
              continue
  
          total_factor *= factor
          to_remove[base_unit] -= 1
  
      return total_factor, remaining_units
docs: Given a list of units, remove a specified number of each base unit.
  
      Arguments:
          units: an iterable of units
          to_remove: a mapping of base_unit => count, such as that returned from
              count_base_units
  
      Returns a 2-tuple of (factor, remaining_units).