Hey PatrickStokes, interesting approach using a constraint graph! Could you clarify how you handle cycles versus paths when multiplying the possibilities across components? I'm trying to visualize the implementation for larger inputs.