#include #include using namespace std; const int maxn = 100000; vector graph[maxn]; int main() { int n, m; cin >> n >> m; for(int i = 0; i < m; i++) { int a, b; cin >> a >> b; graph[a].push_back(b); graph[b].push_back(a); } int S, E; cin >> S >> E; queue q; q.push(S); q.push(0); vector visited(n, false); while(!q.empty()) { int node = q.front(); q.pop(); int dist = q.front(); q.pop(); if(node == E) { cout << dist << endl; break; } for(int i = 0; i < graph[node].size(); i++) { int neighbour = graph[node][i]; if(!visited[neighbour]) { visited[neighbour] = true; q.push(neighbour); q.push(dist + 1); } } } return 0; }