program fh;
var
f, g: text;
i, p, n: integer;
m: array [1 .. 100] of string;
s: string;
begin
assign(f, 'in.txt');
reset(f);
assign(g, 'out.txt');
rewrite(g);
while not eof(f) do
begin { считываем ВЕСЬ файл }
readln(f, s); { считываем очередную строку }
i := 0; { ставим счётчик слов на 0 }
repeat { *********предложение разбиваем на слова и записываем в массив }
inc(i); { увеличиваем счётчик текущего ПРЕДЛОЖЕНИЯ }
p := pos(' ', s); { смотрим где находится пробел }
m[i] := copy(s, 1, p - 1); { записываем текущее слово в массив }
delete(s, 1, p); { то слово, которое заприсали в массив - удаляем }
until p = 0; { **************** }
n := i + 1; { конец массива }
if s[length(s)] = '.' then { если строчка заканчивается точкой }
begin
m[n] := copy(s, 1, length(s) - 1);
m[1] := m[1] + '.' { то эту точку перемещаем на 1 слово }
end
else
m[n] := s; { а если нет точки - то просто его записываем в массив }
writeln(g);;
for i := n downto 1 do
write(g, m[i], ' ');
{ идём с конца массива в начало и записываем слова в обратном порядке }
end;
writeln('PEREZAPISANO...');
readln;
close(f);
close(g);
end.