#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
typedef struct stacknode{
datatype data;
struct stacknode *next;
}StackNode;
typedef struct{
StackNode *top;
}LinkStack;
void InitStack(LinkStack &s);
int ReadTop(LinkStack s,datatype x);
void Push(LinkStack &s,datatype x);
int Pop(LinkStack &s,datatype &x);
void ShowStack(LinkStack &s);
int main(){
LinkStack s;
InitStack(s);
datatype x;
while(1){
scanf("%d",&x);
if(x!=12138)
Push(s,x);
else
break;
}
ShowStack(s);
}
void InitStack(LinkStack &s){
s.top=NULL;
}
int ReadTop(LinkStack s,datatype x){
if(!s.top) return 0;
x=s.top->data;
return 1;
}
void Push(LinkStack &s,datatype x){
StackNode *p;
p=new StackNode;//(StackNode *)malloc(sizeof(StackNode)
p->data=x;
p->next=s.top;
s.top=p;
}
int Pop(LinkStack &s,datatype &x){
StackNode *p;
if(!s.top) return 0;
p=s.top;
x=p->data;
s.top=p->next;
free(p);
return 1;
}
void ShowStack(LinkStack &s){
datatype x;
while(Pop(s,x)){
printf("%d ",x);
}
}