let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const n = Number(input.shift());
const [a, b] = input.shift().split(' ').map(Number);
const m = Number(input.shift());
const arr = input.map((v) => v.split(' ').map(Number));
let visited = Array(n + 1).fill(false);
let graph = [...Array(n + 1)].map(() => []);
arr.map(([from, to]) => {
graph[from].push(to);
graph[to].push(from);
});
const dfs = (start, target) => {
let stack = [[start, 0]];
visited[start] = true;
while (stack.length) {
const [curNum, depth] = stack.pop();
if (curNum === target) return depth;
for (const node of graph[curNum]) {
if (!visited[node]) {
visited[node] = true;
stack.push([node, depth + 1]);
}
}
}
return -1;
};
console.log(dfs(a, b));