#include<bits/stdc++.h>
#define inf 1e9
using namespace std;
const int maxn=1e5+10;
vector<int>s[maxn];
vector<int> dis(3*maxn,inf);
int main()
{
    int m,n;
    cin>>n>>m;
    for(int i=0;i<m;i++)
    {
        int x,y;
        cin>>x>>y;
        x--,y--;
        s[x].push_back(y);
    }
    int st,ed;
    cin>>st>>ed;
    st--,ed--;
       dis[st]=0;
   queue<int>que;
    que.push(st);
    while(!que.empty()){
        int x=que.front();
        que.pop();
        int sum=x%n;

        for(int i=0;i<s[sum].size();i++){
           int d=dis[x]+1;
           int y=s[sum][i]+n*(d%3);
           if(dis[y]!=inf)
             continue;
           dis[y]=d;
           que.push(y);

        }
    }
   // for(int i=1;i<=n;i++)
  //      cout<<dis[i]<<endl;
printf("%d\n",dis[ed]==inf? -1:dis[ed]/3);

    return 0;
}
