available, desired = DATA.read.split("\n\n")
available = available.split(", ")
desired = desired.lines(chomp: true)

available = Regexp.new("^(#{available.join(?|)})+$")
pp desired.select { _1 =~ available }.size

__END__
r, wr, b, g, bwu, rb, gb, br

brwrr
bggr
gbbr
rrbgbr
ubwu
bwurrg
brgr
bbrgwb