#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef struct{
int *data;
int front;
int rear;
int tag;
}qu;
void init(qu &q){
q.data=new int[3];
q.rear=q.front=0;
q.tag=0;
}
void enqueue(qu &q,int x){
if(q.tag==1&&(q.front==q.rear)) {
cout<<"error1";
exit(0);
}
q.data[q.rear]=x;
q.rear=(q.rear+1)%3;
if(q.tag==0) q.tag=1;
}
void dequeue(qu &q){
if(q.tag==0&&(q.front==q.rear)) {
cout<<"error2";
exit(0);
}
cout<<q.data[q.front]<<endl;
q.front=(q.front+1)%3;
if(q.tag==1) q.tag=0;
}
int main()
{
qu q;
init(q);
enqueue(q,10);
enqueue(q,20);
enqueue(q,30);
enqueue(q,40);
enqueue(q,50);
dequeue(q);
dequeue(q);
dequeue(q);
dequeue(q);
//cout << "Hello world!" << endl;
return 0;
}