uses crt;
const razd:set of char=[' ','.',',',':',';','!'];
var st,buf:string;
begin
clrscr;
readln(st);
repeat
if (st[1] in razd) or (length(st)=0) then while st[1] in razd do delete(st,1,1)
else
begin
while (not (st[1] in razd)) and (length(st)>0) do
begin
buf:=buf+st[1];
delete(st,1,1);
end;
if length(buf) mod 2=0 then delete(buf,1,1) else
begin
delete(buf,length(buf),1);
delete(buf,length(buf) div 2+1,1);
end;
write(buf,' ');
buf:='';
end;
until (length(st)=0) and (length(buf)=0);
readln;
end.