https://www.acmicpc.net/problem/2644
from collections import deque
def bfs(x):
global count
q.append(start)
visited[start] =1
count[start] = 1
while q:
x = q.popleft()
for i in range(len(graph[x])):
nx = graph[x][i]
if visited[nx] != 1:
visited[nx] = 1
q.append(nx)
count[nx] = count[x] +1 #key _point 부분
################main#############
vertex = int(input())
start,end = map(int,input().split())
edge =int(input())
graph =[ [] for _ in range(vertex+1)]
visited = [ 0 for _ in range(vertex+1)]
count = [ 0 for _ in range(vertex+1)] # 촌수를 계산할수있는 같은이중 리스트를 만들어주는것
q = deque()
for _ in range(edge):
x,y = map(int,input().split())
graph[x].append(y)
graph[y].append(x)
bfs(start)
#print(graph)
#print(count)
#print(visited)
print(count[end] - count[start])