------
## 最终结论
```python
import heapq

def combine_engineers(speed, efficiency):
    return [(speed[i], efficiency[i]) for i in range(len(speed))]

def sort_engineers_by_efficiency(engineers):
    return sorted(engineers, key=lambda x: x[1], reverse=True)

def initialize_variables():
    speed_heap = []  # Min-heap to store speeds
    current_speed = 0  # Current total speed of the team
    max_performance = 0  # Maximum performance found so far
    return speed_heap, current_speed, max_performance

def update_team_speed(speed, speed_heap, current_speed, k):
    current_speed += speed
    heapq.heappush(speed_heap, speed)
    
    if len(speed_heap) > k:
        current_speed -= heapq.heappop(speed_heap)
    
    return current_speed

def calculate_performance_and_update_max(current_speed, efficiency, max_performance):
    performance = current_speed * efficiency
    if performance > max_performance:
        max_performance = performance
    
    return max_performance

def max_performance(n, speed, efficiency, k):
    engineers = combine_engineers(speed, efficiency)
    sorted_engineers = sort_engineers_by_efficiency(engineers)
    
    speed_heap, current_speed, max_performance = initialize_variables()
    
    for speed, efficiency in sorted_engineers:
        current_speed = update_team_speed(speed, speed_heap, current_speed, k)
        max_performance = calculate_performance_and_update_max(current_speed, efficiency, max_performance)
    
    return max_performance % (10**9 + 7)

# Example usage
n = 6
speed = [2, 10, 3, 1, 5, 8]
efficiency = [5, 4, 3, 9, 7, 2]
k = 2
result = max_performance(n, speed, efficiency, k)
print(result)  # Output: 60
```