lsts = Join[Thread[{Join[Range[5], Range[8, 10]]Range[8], "sing"}],
Thread[{Range[6, 10], "dance"}]];
Length @
Select[
Count[Last /@ #, "sing"] == 2 &&
Count[Last /@ #, "dance"] == 2 &&
CountDistinct[First /@ #] == 4 &] @
Subsets[lsts, {4}]
199