#include <stdio.h>
#include <stdlib.h>

struct DynArray {
    double *data;
    size_t m; // total
    size_t n; // used
};

int main(void) {
    int cnt = 0;
    struct DynArray numbers = { 0 };
    double newnum;
    while (scanf("%lf", &newnum) == 1 && newnum != -1) {
        if (numbers.n == numbers.m) {
            size_t newsize = numbers.n * 13 / 8 + 1; // use phi aproximation 13/8
            double *newarr = realloc(numbers.data, newsize * sizeof *numbers.data);
            fprintf(stderr, "INFO: realloc'ed with %d elements.\n", (int)newsize);
            if (!newarr) exit(EXIT_FAILURE);
            numbers.data = newarr;
            numbers.m = newsize;
        }
        numbers.data[numbers.n] = newnum;
        numbers.n++;
    }

    for (int i = numbers.n - 1; i >= 0; --i) {
        printf("%f\n", numbers.data[i]);
    }

    free(numbers.data);

    return 0;
}
