Optimal complexity correction of correlated errors in the surface code | Synapse