#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; string S, W; int N; vector words; bool can() { int Slen = (int)S.size(); int Wlen = (int)W.size(); for(int i = 0; i < Slen - Wlen + 1; i++) { bool ok = true; for(int j = 0; j < Wlen && ok; j++) if(S[i + j] != W[j]) ok = false; if(ok) return true; } return false; } int main() { // freopen("date.in", "r", stdin); // freopen("date.out","w", stdout); cin >> S; cin >> N; for(int i = 0; i < N; i++) { cin >> W; if(can()) words.push_back(W); } sort(words.begin(), words.end()); for(vector :: iterator it = words.begin(); it != words.end(); it++) cout << *it << '\n'; return 0; }