#include<iostream>
#include<utility>
using namespace std;
struct Lnode
{
int data;
Lnode* next;
};
typedef Lnode *LinkList;
bool InitList(LinkList& L)
{
L = new Lnode;
L->next = NULL;
return true;
}
void creatListhead(LinkList& L, int n)
{
for (int i = 0; i < n; i++)
{
Lnode* p = new Lnode;
cin >> p->data;
p->next = L->next;
L->next = p;
}
}
void creatListtail(LinkList& L, int n)
{
Lnode* r = L;
for (int i = 0; i < n; i++)
{
Lnode* p = new Lnode;
cin >> p->data;
p->next = NULL;
r->next = p;
r = r->next;
}
}
bool Getelem(LinkList& L, int i, int& e)
{
Lnode* p = new Lnode;
p = L->next;
int j = 1;
while (p && j < i)
{
p = p->next;
++j;
}
if (!p || j > i)
{
return 0;
}
e = p->data;
return 1;
}
bool InsertList(LinkList& L, int i, int date)
{
Lnode* p = new Lnode;
p = L;
int j = 0;
while (p && j < (i - 1))
{
p = p->next; j++;
}
if (!p || j > (i - 1))
{
cout << "error!";
return 0;
}
Lnode *s = new Lnode;
s->data = date;
s->next = p->next;
p->next = s;
return 1;
}
bool DeleteElem(LinkList& L, int i,int n)
{
Lnode* p = new Lnode;
p = L;
if (i > n)
{
cout << "error!";
return 0;
}
int j = 0;
while (p && j < i - 2)
{
p = p->next;
j++;
}
if (!p || j > i - 2)
{
cout << "error!";
return 0;
}
Lnode* r = new Lnode;
r = p->next;
r = r->next;
p->next = r;
return 1;
}
signed main()
{
//std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
LinkList L;
InitList(L);
int n; cin >> n;
creatListtail(L, n);
int i;
cin >> i;
if (DeleteElem(L, i,n))
{
Lnode* p = new Lnode;
p = L->next;
int j = 1;
while (p && p!=NULL)
{
cout << p->data << ' ';
p = p->next;
++j;
}
}
}