#include <iostream>
#include <string>
#include <string.h>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
map<string, vector<int>> sv[6];
int id, i, j, len, k, p;
char s[100], ch, keyword[20];
for(i = 1; i <= n; i++)
{
scanf("%d", &id);
getchar();
for(p = 1; p <= 5; p++)
{
gets(s);
if(p == 3)
{
len = strlen(s);
k = 0;
for(j = 0; j <= len; j++)
{
ch = s[j];
if(ch == ' ' || j == len)
{
keyword[k] = '\0';
k = 0;
sv[3][keyword].push_back(id);
}
else
{
keyword[k++] = ch;
}
}
}
else
{
sv[p][s].push_back(id);
}
}
}
map<string, vector<int>> ::iterator svit, svbegin, svend;
for(i = 1; i <= 5; i++)
{
svbegin = sv[i].begin();
svend = sv[i].end();
for(svit = svbegin; svit != svend; svit++)
{
sort((svit->second).begin(), (svit->second).end());
}
}
int m;
scanf("%d", &m);
getchar();
char s1[100];
vector<int> v;
int size;
for(i = 1; i <= m; i++)
{
gets(s);
puts(s);
len = strlen(s);
for(j = 3, k = 0; j <= len - 1; j++, k++)
{
s1[k] = s[j];
}
s1[k] = '\0';
v = sv[s[0] - '0'][s1];
size = v.size();
if(size == 0)
{
printf("Not Found\n");
}
else
{
for(j = 0; j <= size - 1; j++)
{
printf("%07d\n", v[j]);
}
}
}
system("pause");
return 0;
}