#include <stdio.h>
#include <stdlib.h>
typedef struct List{
    int data;
    struct List* next;
}List;

void fuzhi(List** L,int n,int arr[]){
    List* r=*L;
    List* p;
    for(int i=0;i<n;i++){
        p = (List*)malloc(sizeof(List));
        p->data= arr[i];
        p->next = NULL;
        r->next =p;
        r=p;
    }
}

void print(List* L){
    List* p =L;
    while(p->next){
        p=p->next;
        printf("%d ",p->data);
    }
}

void charu(List** L,int i){
    int j=0;
    List*p = *L;
    while(p->next&&j<i){
        p=p->next;
        j++;
    }
    List* s=(List*) malloc(sizeof(List));
    s->data=i;
    s->next = p->next;
    p->next =s;
}


int main(){
    int n,i;
    scanf("%d%d",&n,&i);
    int arr[n];
    for(int i=0;i<n;i++){
        scanf("%d",&arr[i]);
    }
    List* L=malloc(sizeof(List));
    L->next =NULL;
    fuzhi(&L,n,arr);
    charu(&L,i);

    print(L);
    return 0;
}