시작점을 기준으로 bfs
시작점으로부터 떨어진 거리를 저장 후 도착점까지의 거리 출력
from sys import stdin
from collections import deque
def bfs(v):
	queue = deque()
	queue.append(v)
	while queue:
		v = queue.popleft()
		for i in graph[v]:
			if not visited[i]:
				visited[i] = visited[v] + 1
				queue.append(i)
n = int(stdin.readline().strip())
graph = [[] for _ in range(n + 1)]
visited = [0] * (n + 1)
start, end = map(int, stdin.readline().split())
for _ in range(int(stdin.readline().strip())):
	x, y = map(int, stdin.readline().split())
	graph[x].append(y)
	graph[y].append(x)
bfs(start)
print(visited[end] if visited[end] else -1)