n, m = gets.split.map &:to_i
g = Array.new(n) {[]} #隣接リストのグラフを配列の配列で作る
m.times do
  u, v = gets.split.map(&:to_i).map(&:pred) #デクリメントして辺をプッシュ
  g[u].push(v)
end
s, t = gets.split.map(&:to_i).map(&:pred)

dist = Array.new(n) {Array.new(3)} # nilで初期化
dist[s][0] = 0
q = [[s, 0]] #BFS用のキュー
#BFSで探索
while q.size > 0
  u, v = q.shift
  nl = (v + 1) % 3
  g[u].each do |e|
    unless dist[e][nl]
      dist[e][nl] = dist[u][v] + 1
      q.push([e, nl])
    end
  end
end
ans = dist[t][0] || -3
puts ans / 3 #けんけんぱの回数を求める

