#include<bits/stdc++.h>
using namespace std;
vector<int> edge[1010];
int n , m , p , q , res , ans;
int vis[1010] , t[1010];
void dfs(int x , int res) {
vis[x] = 1;
if(x == q) {
ans = min(ans , res);
vis[x] = 0;
return;
}
int l = edge[x].size();
for(int i = 0; i < l; i ++) {
if(!vis[edge[x][i]])
dfs(edge[x][i] , res + 1);
}
vis[x] = 0;
}
int main() {
scanf("%d %d" , &n, &m);
for (int i = 1; i <= m; i ++) {
int u , v;
scanf("%d %d" , &u , &v);
edge[u].push_back(v);
edge[v].push_back(u);
}
scanf("%d %d" , &p , &q);
ans = 1e9 + 10;
dfs(p , 1);
printf("%d\n" , ans - 2);
}