Don’t. It’d be faster to ask each circle how many points it has in it, and then get the Red circle which contains the most circles, and then the blue circle which contains the most circles. if you upload your dataset I’ll take a stab at how to do this when I get home.
Right now the only way to union curve loops and surfaces out of the box, is to first solidify them, perform the desired boolean ops and finally intersect the result with the input curve’s plane:
Like @jacob.small said, you don’t have to compare them at the same time. You can compare them separately but you do have to be careful of overlap. Using the Blue circle with the most points and the Red circle with the most points might not necessarily give you the largest combination if the two circles have a lot of overlap (I assume you’re only counting each point once.)