------
## 最终结论
```python
def minMalwareSpread(graph, initial):
    def dfs(node, visited, graph):
        for neighbor in range(len(graph)):
            if graph[node][neighbor] == 1 and neighbor not in visited:
                visited.add(neighbor)
                dfs(neighbor, visited, graph)

    n = len(graph)
    initial_set = set(initial)
    initial.sort()
    min_infected = float('inf')
    result_node = initial[0]

    for node_to_remove in initial:
        visited = set()
        for node in range(n):
            if node not in visited and node != node_to_remove and node not in initial_set:
                component = set()
                dfs(node, component, graph)
                if any(i in component for i in initial_set if i != node_to_remove):
                    visited.update(component)

        infected_count = len(visited) + len(initial_set) - 1
        if infected_count < min_infected:
            min_infected = infected_count
            result_node = node_to_remove

    return result_node
```