Code:
#include<iostream>
#include<vector>
using namespace std;
struct node {
char letter;
int next;
bool flag;
};
node a[100000];
int main() {
int start1, start2, num;
int ans;
cin >> start1 >> start2 >> num;
for (int i = 0; i < num; i++)
{
int add, next;
char c;
cin >> add >> c >> next;
a[add] = { c,next,false };
}
int p = start1;
while (p != -1)
{
a[p].flag = true;
p = a[p].next;
}
p = start2;
while (p != -1)
{
if (a[p].flag == true) {
printf("%05d", p);
break;
}
p = a[p].next;
}
if (p == -1)
{
cout << "-1";
}
return 0;
}