solution
#include <iostream>
#include <cstring>
using namespace std;
struct node
{
char data;
int key, flag;
} add[100010];
int main()
{
int st1, st2, n;
cin >> st1 >> st2 >> n;
for (int i = 1; i <= n; i++)
{
int a, c;
char b;
cin >> a >> b >> c;
add[a].data = b, add[a].key = c;
}
for (int i = st1; i != -1; i = add[i].key)
{
add[i].flag = true;
}
int count = -1;
for (int i = st2; i != -1; i = add[i].key)
{
if (add[i].flag)
{
printf("%05d", i);
count++;
break;
}
}
if (count == -1)
cout << "-1";
}