directly, but instead use an iterative approach that successively aligns the components X i ∈ X and removes the matched vertices from Y . More precisely, for each X i ∈ X we compute MCS(X i , Y (i-1) )) and construct Y (i) by removing all matched vertices from 1) . To do this efficiently, we sort X in order of decreasing number of vertices in the connected components. As part of each evaluation of MCS(X i , Y (i-1) )) we also keep track of the cut edges between the matched and unmatched vertices, i.e., the broken bonds, which in particular allows us to compute the (A i , B i ) from the iterative MCS approach.