#include <stdio.h>
#include <stdlib.h>

int n;

// Function to strip newline (just in case)
void stripNewline(char* str){
    int len = strlen(str);
    while(len > 0 && (str[len-1]=='\n' || str[len-1]=='\r'))
        str[--len] = '\0';
}

// Inorder traversal of the tree represented as array
void inorder(int* arr, int idx) {
    if(idx >= n) return;
    int leftIdx = 2 * idx + 1;
    int rightIdx = 2 * idx + 2; // required by problem
    inorder(arr, leftIdx);
    printf("%d ", arr[idx]);
    inorder(arr, rightIdx);
}

int main() {
    if(scanf("%d", &n)!=1 || n<1 || n>100){
        printf("Invalid input\n");
        return 0;
    }

    int* arr = (int*)malloc(sizeof(int)*n);
    for(int i=0;i<n;i++){
        if(scanf("%d", &arr[i])!=1 || arr[i]<0 || arr[i]>100){
            printf("Invalid input\n");
            free(arr);
            return 0;
        }
    }

    int pos, newVal;
    if(scanf("%d %d", &pos, &newVal)!=2 || pos<0 || pos>=n || newVal<0 || newVal>100){
        printf("Invalid input\n");
        free(arr);
        return 0;
    }

    // Update brightness
    arr[pos] = newVal;

    // Print inorder traversal
    inorder(arr, 0);
    printf("\n");

    free(arr);
    return 0;
}