#include <cstdio> #include <cstdlib> #include <cstring> #include <vector> using namespace std; int cmp(const void *a, const void *b){ return strcmp((char*)a, (char*)b); } int main() { char words[70000][31]; int iw=0; char s[31]; scanf("%s",&s); int s_stat['z'+1]; for(int i=0;i<='z';++i) s_stat[i]=0; for(int i=0;s[i];++i) ++s_stat[s[i]]; int n; scanf("%d",&n); for(int i=0;i<n;++i){ scanf("%s",words[iw]); int w_stat['z'+1]; for(int i=0;i<='z';++i) w_stat[i]=0; for(int i=0;words[iw][i];++i) ++w_stat[words[iw][i]]; int j; for(j=0;j<='z';++j) if(w_stat[j]>s_stat[j]) break; if(j>'z') ++iw; } qsort(words,iw,sizeof(words[0]),cmp); for(int i=0;i<iw;++i) printf("%s\n",words[i]); }