require 'set' groups = File.read("input.txt").split("\n\n") puts groups .map{|g| g.gsub("\n","")} .map{|g| g.chars} .map{|a| a.to_set} .map{|s| s.size} .reduce(0, :+) puts groups .map{|g| g.split("\n")} .map{|g| g.map{|a| a.chars}} .map{|a| a.map{|a| a.to_set}} .map{|s| s.reduce(:&)} .map{|s| s.size} .reduce(0, :+)