#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

#define MAX 1001

// Helper to check if a string is a valid floating-point number
int isFloat(const char* str) {
    int hasDot = 0, hasDigit = 0;
    if (*str == '-' || *str == '+') str++;
    if (!*str) return 0;
    while (*str) {
        if (*str == '.') {
            if (hasDot) return 0;
            hasDot = 1;
        } else if (!isdigit(*str)) {
            return 0;
        } else {
            hasDigit = 1;
        }
        str++;
    }
    return hasDigit;
}

int main() {
    int n, i;
    float arr[MAX];
    char line;
    char *token;

    // Read n
    if (!fgets(line, sizeof(line), stdin)) {
        printf("Invalid input\n");
        return 0;
    }
    if (sscanf(line, "%d", &n) != 1 || n < 0 || n > 1000) {
        printf("Invalid input\n");
        return 0;
    }

    // Read n floating-point numbers
    if (!fgets(line, sizeof(line), stdin)) {
        printf("Invalid input\n");
        return 0;
    }
    token = strtok(line, " \n\r");
    for (i = 0; i < n; i++) {
        if (!token || !isFloat(token)) {
            printf("Invalid input\n");
            return 0;
        }
        arr[i] = atof(token);
        token = strtok(NULL, " \n\r");
    }
    if (token) { // More values than expected
        printf("Invalid input\n");
        return 0;
    }

    // Read the new floating-point value
    if (!fgets(line, sizeof(line), stdin)) {
        printf("Invalid input\n");
        return 0;
    }
    token = strtok(line, " \n\r");
    if (!token || !isFloat(token)) {
        printf("Invalid input\n");
        return 0;
    }
    float newValue = atof(token);

    // Insert at end: arr[n] = newValue;
    arr[n] = newValue;  

    // Print updated list
    for (i = 0; i <= n; i++) {
        printf("%.2f", arr[i]);
        if (i != n) printf(" ");
    }
    printf("\n");
    return 0;
}