uses crt;
type mnoz=set of char;
procedure Mnozestvo(s:string;var m:mnoz);{создание множества из слова}
var i:byte;
begin
m:=[];
for i:=1 to length(s) do
m:=m+[s[i]];{все буквы заносим в множество}
end;
var s,s1:string;
m1,mi,m:mnoz;
i,k:byte;
begin
clrscr;
writeln('Введите предложение:');
readln(s);
s:=s+' ';{добавим пробел}
{удалим лишние пробелы}
while pos(' ',s)>0 do {пока есть 2 пробела рядом}
delete(s, pos(' ',s),1);{один удаляем, в апостофах обязательно по 2 пробела, если 1, все сольется}
s1:=copy(s,1,pos(' ',s));{берем первое слово}
Mnozestvo(s1,m1);{делаем множество по условию}
delete(s,1,pos(' ',s));{удаляем слово}
k:=0;
while pos(' ',s)>0 do{пока есть пробелы}
begin
s1:=copy(s,1,pos(' ',s)-1);{копируем первое слово}
Mnozestvo(s1,mi);{делаем множество}
m:=mi-m1;
if m=mi {если разность множеств=исходному, букв нет}
then
begin
write(s1,' ');
k:=1;
end;
delete(s,1,pos(' ',s));{удаляем слово, следующее первое}
end;
if k=0 then write('Таких слов нет.');
readln
end.