#include <iostream>
using namespace std;
const int N = 30;
int son[N];
int find(int a, int b)
{
int cnt = 0;
while(a != son[a] && a != b)
{
a = son[a];
cnt ++;
}
if(a == b) return cnt;
return 0;
}
int main() {
string s3 = "great-", s2 = "grand", s11 = "parent", s12 = "child", s1;
int n, m;
while(cin >> n >> m)
{
for(int i = 0; i < N; i ++) son[i] = i;
while(n --)
{
char a, b, c;
cin >> a >> b >> c;
if(b != '-') son[b - 'A'] = a - 'A';
if(c != '-') son[c - 'A'] = a - 'A';
}
while(m --)
{
char a, b;
cin >> a >> b;
int len = find(a - 'A', b - 'A');
if(len) s1 = s11;
else
{
len = find(b - 'A', a - 'A');
s1 = s12;
}
if(!len)
{
cout << '-' << endl;
continue;
}
while(len)
{
if(len >= 3) cout << s3;
else if(len == 2) cout << s2;
else cout << s1 << endl;
len --;
}
}
}
return 0;
}
// 64 位输出请用 printf("%lld")