// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
type
fs=(string,string);
begin
var L:=new List;
repeat
var aw:=ReadlnString('>').ToWords;
if aw.Length=0 then break;
L.Add((aw[1],aw[0]))
until false;
var a:=L.OrderBy(t->t[0]);
var i:=1;
foreach var x in a do begin
Writeln(i:4,' ',x[1],' ',x[0]);
i+=1
end
end.
Пример
> J.X. Smith
> B.A. Weiter
> A.C. Johnes
>
1 A.C. Johnes
2 J.X. Smith
3 B.A. Weiter