In the first step we compute all possible combinations of synthon substructures that can yield the query substructure after synthon assembly. For c connectors this can be done simply by considering all sets of c bonds, and for each set removing the c bonds from the structure, trying to break it apart into multiple fragments. When removing a specific set of bonds q from the query structure, we perform the following step for every contained bond