#include #include #define MAX_LENGTH 35 #define MAX_L 70005 using namespace std; int alph[30], num; char result[MAX_L][MAX_LENGTH]; int main() { int n, i, count, ok; char seq[MAX_LENGTH], word[MAX_LENGTH], j, *x, aux[MAX_LENGTH]; cin >> seq; for(i = 0 ; i < strlen(seq) ; i++) alph[seq[i] - 'a']++; cin >> n; for(i = 0 ; i < n ; i++) { cin >> word; ok = 1; for(j = 'a' ; j <= 'z' ; j++) { count = 0; x = strchr(word, j); while(x) { count++; x = strchr(x + 1, j); } if(count > alph[j - 'a']) ok = 0; } if(ok == 1) strcpy(result[num++], word); } do { ok = 1; for(i = 0 ; i < num - 1 ; i++) if(strcmp(result[i], result[i+1]) > 0) { strcpy(aux, result[i]); strcpy(result[i], result[i+1]); strcpy(result[i+1], aux); ok = 0; } }while(ok == 0); for(i = 0 ; i < num ; i++) cout << result[i] << "\n"; return 0; }