def f(line) until line.count("G").zero? && line.count("R") g,r = ["G", "R"].map{|bus| line.index(bus)} return "impossible" if [g, r].include?(nil) || g > r || line[0..g].count("W").zero? ["G", "R", "W"].each{|bus| line.sub!(bus, "")} end "possible" end puts $<.drop(1).map{|line| f(line.chomp)}