PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString; var a:=s.ToWords('.').Select(t->Trim(t)).ToArray; var b:=s.ToWords(Arr('.',' ')) .GroupBy(t->t).Select(t->(t.Key,t.Count)) .Where(t->t[1]>1).Select(t->t[0]).ToArray; a.Cartesian(b,(p,q)->p.Contains(q)?p:'') .Where(t->t.Length>0).Distinct.PrintLines end.