import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class BFS { private static int distance(ArrayList[] adj, int s, int t) { int[] dist = new int[adj.length]; Arrays.fill(dist, -1); dist[s] = 0; bfs(adj, s, dist); return dist[t]; } private static void bfs(ArrayList[] adj, int s, int[] dist) { Queue vertexQ = new LinkedList<>(); vertexQ.add(s); while (!vertexQ.isEmpty()) { int u = vertexQ.remove(); for (int i : adj[u]) { if (dist[i] == -1) { vertexQ.add(i); dist[i] = dist[u] + 1; } } } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int m = scanner.nextInt(); ArrayList[] adj = (ArrayList[]) new ArrayList[n]; for (int i = 0; i < n; i++) { adj[i] = new ArrayList(); } for (int i = 0; i < m; i++) { int x, y; x = scanner.nextInt(); y = scanner.nextInt(); adj[x - 1].add(y - 1); adj[y - 1].add(x - 1); } int x = scanner.nextInt() - 1; int y = scanner.nextInt() - 1; System.out.println(distance(adj, x, y)); } }