#include <cstdio>
#include <cstring>
#include <string>
int main() {
int nrows;
char key[2000];
char line[2000002];
int *begin = new int[2000002];
int *end = new int[2000002];
bool print[2000002];
//gets (line);
//printf ("%s", line);
while (scanf ("%d %s", &nrows, key) == 2) {
int ksize = strlen (key);
char dummy[10];
gets (dummy);
for (int i = 0; i < nrows; i++) {
gets (line);
int size = strlen (line);
if (size == 0) {
printf ("\n");
continue;
}
//printf ("%s\n", line);
int prev = 0;
for (int j = 0; j < size; j++) {
if (line[j] == key[prev]) {
prev++;
begin[j] = prev;
}
else if (line[j] == key[0]) {
begin[j] = 1;
prev = 1;
}
else begin[j] = 0;
prev = begin[j] % ksize;
}
/*
for (int j = 0; j < size; j++)
printf ("%d ", begin[j]);
printf ("\n");
*/
prev = ksize - 1;
for (int j = size - 1; j >= 0; j--) {
if (line[j] == key[prev]) {
end[j] = ksize - prev;
prev--;
}
else if (line[j] == key[ksize - 1]) {
end[j] = 1;
prev = ksize - 2;
}
else end[j] = 0;
if (prev < 0) prev += ksize;
}
/*
for (int j = 0; j < size; j++)
printf ("%d ", end[j]);
printf ("\n");
*/
int pos = 0;
memset (print, 1, sizeof (print));
for ( ; ;) {
if (begin[pos] == ksize) {
memset (print + pos - ksize + 1, 0, ksize);
int bpos = pos - ksize;
int epos = pos + 1;
//printf ("%d %d\n", bpos, epos);
while (bpos >= 0 && epos < size) {
if (begin[bpos] + end[epos] == ksize && print[bpos] && print[epos]) {
memset (print + (bpos - begin[bpos]) + 1, 0, begin[bpos]);
memset (print + epos, 0, end[epos]);
bpos = bpos - begin[bpos];
epos = epos + end[epos];
}
else break;
}
}
pos++;
if (pos == size) break;
}
/*
for (int i = 0; i < size; i++)
printf ("%d ", print[i]);
printf ("\n");
*/
for (int i = 0; i < size; i++)
if (print[i])
printf ("%c", line[i]);
printf("\n");
}
}
return 0;
}