#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#define maxn 100010
using namespace std;
typedef struct Node{
char c;
int next;
// int flag;
}N;
N node[maxn];
int main() {
int first1,first2,N;
while(cin>>first1>>first2>>N)
{
for(int i=0;i<N;i++)
{
int add;
cin>>add;
cin>>node[add].c>>node[add].next;
}
int p1 = first1,l1=0;
int p2 = first2,l2=0;
int ans = -1;
while(p1!=-1)
{
l1++;
p1 = node[p1].next;
}
while(p2!=-1)
{
l2++;
p2 = node[p2].next;
}
p1 = first1;
while(l1>l2)
{
l1--;
p1 = node[p1].next;
}
p2 = first2;
while(l1<l2)
{
l2--;
p2 = node[p2].next;
}
while(p1!=-1)
{
if(p1==p2)
{
ans = p1;
break;
}
else {
p1 = node[p1].next;
p2 = node[p2].next;
}
}
cout<<ans<<endl;
}
}
// 64 位输出请用 printf("%lld")