#include <cstdio>
#include <stack>
using namespace std;
int N, M;
int A, B;
int parent[101];
stack<int> SA;
stack<int> SB;
int main() {
scanf("%d %d %d %d", &N, &A, &B, &M);
for (int i = 0; i < M; i ++) {
int x, y;
scanf("%d %d", &x, &y);
parent[y] = x;
}
SA.push(A);
while (parent[SA.top()] != 0) {
SA.push(parent[SA.top()]);
}
SB.push(B);
while (parent[SB.top()] != 0) {
SB.push(parent[SB.top()]);
}
if (SA.top() != SB.top()) {
printf("-1\n");
} else {
while (!SA.empty() && !SB.empty() && SA.top() == SB.top()) {
SA.pop();
SB.pop();
}
printf("%d\n", (int) SA.size() + (int) SB.size());
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHN0YWNrPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBOLCBNOwppbnQgQSwgQjsKaW50IHBhcmVudFsxMDFdOwoKc3RhY2s8aW50PiBTQTsKc3RhY2s8aW50PiBTQjsKCmludCBtYWluKCkgewogICAgc2NhbmYoIiVkICVkICVkICVkIiwgJk4sICZBLCAmQiwgJk0pOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTTsgaSArKykgewogICAgICAgIGludCB4LCB5OwogICAgICAgIHNjYW5mKCIlZCAlZCIsICZ4LCAmeSk7CiAgICAgICAgcGFyZW50W3ldID0geDsKICAgIH0KCiAgICBTQS5wdXNoKEEpOwogICAgd2hpbGUgKHBhcmVudFtTQS50b3AoKV0gIT0gMCkgewogICAgICAgIFNBLnB1c2gocGFyZW50W1NBLnRvcCgpXSk7CiAgICB9CgogICAgU0IucHVzaChCKTsKICAgIHdoaWxlIChwYXJlbnRbU0IudG9wKCldICE9IDApIHsKICAgICAgICBTQi5wdXNoKHBhcmVudFtTQi50b3AoKV0pOwogICAgfQoKICAgIGlmIChTQS50b3AoKSAhPSBTQi50b3AoKSkgewogICAgICAgIHByaW50ZigiLTFcbiIpOwogICAgfSBlbHNlIHsKICAgICAgICB3aGlsZSAoIVNBLmVtcHR5KCkgJiYgIVNCLmVtcHR5KCkgJiYgU0EudG9wKCkgPT0gU0IudG9wKCkpIHsKICAgICAgICAgICAgU0EucG9wKCk7CiAgICAgICAgICAgIFNCLnBvcCgpOwogICAgICAgIH0KICAgICAgICBwcmludGYoIiVkXG4iLCAoaW50KSBTQS5zaXplKCkgKyAoaW50KSBTQi5zaXplKCkpOwogICAgfQoKICAgIHJldHVybiAwOwp9