program beginner;

var letters:array['a'..'z'] of boolean;
    lwords:array[1..70000] of string[30];
    ln:integer;
    word,lettersstr:string;
    i,n,j:integer;
    ic:char;
    ok:boolean;
begin


for ic:='a' to 'z' do letters[ic]:=false;
readln(lettersstr);
for i:=1 to length(lettersstr) do letters[lettersstr[i]] := true;

readln(n);
ln := 0;
for i:=1 to n do
  begin
  readln(word);
  ok := true;
  for j:=1 to length(word) do
    if (letters[word[j]]=false) or (pos(word[j],word) <j )  then ok := false;
  if ok then
    begin
    inc(ln);
    lwords[ln]:=word;
    end;
  end;

for i:=1 to ln-1 do
  for j:=i+1 to ln do if lwords[i]>lwords[j] then
    begin
    word := lwords[i];
    lwords[i] := lwords[j];
    lwords[j] := word;
    end;

for i:=1 to ln do writeln(lwords[i]);

end.