with ada.text_io; use ada.text_io; 
with ada.integer_text_io; use ada.integer_text_io; 
 
-- Input and print in reverse an unknown number, up to 100
-- Indices can start at any number
procedure printn is 

    firstIndex: constant Integer := -10; 
    maxArraySize: constant Natural := 100;

    a: array (firstIndex .. firstIndex + maxArraySize) of Integer;

    numEntered: natural := 0;         -- How many were entered
    
    num: integer;
begin 
    while not end_of_file and numEntered < maxArraySize loop
        get(num);
        numEntered := numEntered + 1;
        a(firstIndex + numEntered) := num;
    end loop;

    -- Another way to access indices
    -- for i in reverse a'first .. a'first + numEntered - 1 loop

    for i in reverse firstIndex .. firstIndex + numEntered - 1 loop
        put(a(i)); 
        new_line;
    end loop;

end printn;