#!/usr/bin/ruby def cycle(c,m,f,h) return f[c] if f[c]!=nil q=true h[c].each{|e| if m.has_key?(e) q=false else m[e]=1 q=false if !cycle(e,m,f,h) m.delete e end } f[c]=q end n,m=gets.split.map &:to_i h=Hash.new{|h,k|h[k]=[]} m.times{ g,r=gets.split.map &:to_i gets.split.map(&:to_i).each{|e|h[g-1]<1},f,h); p f} p f.count(true)