Floyd's triangle   lists the natural numbers in a right triangle aligned to the left where

 the first row is   1     (unity)
 successive rows start towards the left with the next number followed by successive naturals listing one more number than the line above.


The first few lines of a Floyd triangle looks like this:

 1
 2  3
 4  5  6
 7  8  9 10
11 12 13 14 15



Task

 Write a program to generate and display here the first   n   lines of a Floyd triangle. 
(Use   n=5   and   n=14   rows).
 Ensure that when displayed in a mono-space font, the numbers line up in vertical columns as shown and that only one space separates numbers of the last row.


MODULE FloydTriangle;
FROM FormatString IMPORT FormatString;
FROM Terminal IMPORT WriteString,WriteLn,ReadChar;
 
PROCEDURE WriteInt(n : INTEGER);
VAR buf : ARRAY[0..9] OF CHAR;
BEGIN
    FormatString("%4i", buf, n);
    WriteString(buf)
END WriteInt;
 
PROCEDURE Print(r : INTEGER);
VAR n,i,limit : INTEGER;
BEGIN
    IF r<0 THEN RETURN END;
 
    n := 1;
    limit := 1;
    WHILE r#0 DO
        FOR i:=1 TO limit DO
            WriteInt(n);
            INC(n)
        END;
        WriteLn;
 
        DEC(r);
        INC(limit)
    END
END Print;
 
BEGIN
    Print(5);
    WriteLn;
    Print(14);
 
    ReadChar
END FloydTriangle.