#include<bits/stdc++.h>
using namespace std;
struct node{
long long s,e;
}a[110000];
long long n,m,b[110000],t[110000];
queue<node>q;
void f(int start){
for(int i=1;i<=m;i++){
if(a[i].sstart) {
q.push(a[i]);
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
int f,t;
scanf("%d%d",&f,&t);
a[i].s=f;
a[i].e=t;
}
int st,en;
scanf("%d%d",&st,&en);
f(st);
while(!q.empty()){
node head=q.front();
if(head.sen){
printf("%d",t[head.s]);
return 0;
}
if(b[head.e]==0){
f(head.e);
b[head.e]=1;
t[head.e]=t[head.s]+1;
}
q.pop();
}
printf("-1");
return 0;
}