/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include<stdio.h>
typedef struct
{
int c,n,s;
}score;
int main()
{
score x[100]={};
int n,i,f,m,a,b;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d %d",&x[i].c,&x[i].n,&x[i].s);
}
for(i=0;i<3;i++)
{
if(i==2&&a==b)
{
for(f=0;f<n;f++)
{
if(x[f].c==a)
{
x[f].s=0;
}
}
}
m=0;
for(f=0;f<n;f++)
{
if(x[f].s>x[m].s)
{
m=f;
}
}
printf("%d %d\n",x[m].c,x[m].n);
x[m].s=0;
if(i==0) a=x[m].c;
if(i==1) b=x[m].c;
}
}
*/
/*
#include<stdio.h>
void f(int n)
{
if(n==0) return ;
f((n-1)/26);
printf("%c",(n-1)%26+'A');
}
int main()
{
int n;
scanf("%d",&n);
f(n);
return 0;
}
*/
/*
#include<stdio.h>
#define SIZE 500
int stack[SIZE];
int top=-1; // top 마지막으로 들어온 데이터의 위치
void push(int data)
{
if(top==SIZE-1) return ; //full check
top++;
stack[top]=data;
}
int pop()
{
if(top==-1) return -1; //empty check
return stack[top--];
}
void view()
{
printf("stack >> ");
for(int i=0;i<=top;i++)
{
printf("%d ",stack[i]);
}
printf("\n");
}
int main()
{
// 1 3 10 7 4
push(1);
push(3);
push(10);
push(7);
view();
pop();
view();
pop();
view();
//printf("%d",pop());
//printf("%d",pop());
}
*/
#include<stdio.h>
#define SIZE 500
int stack[SIZE];
int top=-1;
void push(int data)
{
if(top==SIZE-1) return ;
top++;
stack[top]=data;
}
int pop()
{
if(top==-1) return -1;
int data=stack[top];
stack[top]=0;
top--;
return data;
}
int main()
{
char str[50];
scanf("%s",str);
for(int i=0;str[i]!=0;i++)
{
push(str[i]-'0');
}
while(top!=-1)
{
printf("%d",pop());
}
return 0;
}



