#include <bits/stdc++.h>
using namespace std;
int N, L, M;
int trie[500010][26];
vector<int> cnt[500010];
string s;
int id = 0;
void insert(int t) {
cin >> s;
int p = 0;
for (int i = 0; i < (int)s.length(); i++) {
int x = s[i] - 'a';
if (trie[p][x] == 0) trie[p][x] = ++id;
p = trie[p][x];
}
cnt[p].push_back(t);
}
void find(string s) {
int p = 0;
int l = s.length();
for (int i = 0; i < l; i++) {
int x = s[i] - 'a';
if (trie[p][x] == 0) {
break;
}
p = trie[p][x];
}
sort(cnt[p].begin(), cnt[p].end());
for (int i : cnt[p]) {
cout << i << " ";
}
cout << endl;
}
int main() {
cin >> N;
for (int i = 1; i <= N; i++) {
cin >> L;
for (int j = 1; j <= L; j++) {
insert(i);
}
}
cin >> M;
for (int i = 1; i <= M; i++) {
cin >> s;
find(s);
}
return 0;
}