### main

n = gets.strip.to_i
m = gets.strip.to_i

nbrs = n.times.map{[]}
prvs = n.times.map{0}

m.times do
  a, b = gets.strip.split(' ').map{|s| s.to_i - 1}
  nbrs[a] << b
  prvs[b] += 1
end
#p nbrs
#p prvs

src = (0...n).select{|i| prvs[i] == 0}
#p src
tos = []
multi = false


while ! src.empty?
  u = src.shift
  tos << u
  multi = true if ! src.empty?

  for v in nbrs[u]
    prvs[v] -= 1
    if prvs[v] == 0
      src << v
    end
  end
end

tos.each{|i| puts (i + 1)}
puts (multi ? 1 : 0)