#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;
}