BEGIN [25] INT a;
INT n := 0;
FOR i TO UPB a WHILE read (a[i]); a[i] /= 0 DO n +:= 1 OD;
WHILE BOOL swap := FALSE;
FOR i TO n-1
DO IF a[i] > a[i+1]
THEN INT temp = a[i];
a[i] := a[i+1];
a[i+1] := temp;
swap := TRUE
FI
OD;
swap
DO SKIP OD;
print ((a[:n], newline))
END
Contributed by andrew.walker at nottingham.ac.uk