#include<cstdio>
#include <iostream>
#define MAxsize 5
using namespace std;
typedef struct {
int Data[MAxsize];
int front;
int rear;
}SqQueue;
bool InitQueue(SqQueue& L)
{
L.front = L.rear = 0;
return true;
}
bool Push(SqQueue& L, int Elem)
{
if ((L.rear + 1) % MAxsize == L.front) return false;//牺牲一个队列单元,表示队满;
L.Data[L.rear] = Elem;
L.rear = (L.rear + 1) % MAxsize;
return true;
}
bool Pop(SqQueue& L, int& Elem)
{
if (L.rear==L.front) return false;
Elem = L.Data[L.front];
L.front = (L.front + 1) % MAxsize;
return false;
}
bool QueueEmpty(SqQueue L)
{
if (L.front == L.rear) return true;
return false;
}
int main()
{
int Elem;
SqQueue L;
InitQueue(L);
cin >> Elem;
while (Elem != 000)
{
Push(L, Elem);
cin >> Elem;
}
while (true)
{
if (QueueEmpty(L)) break;
Pop(L, Elem);
cout << Elem << endl;
}
return true;
}