<span style="font-family: Arial, Helvetica, sans-serif;">#include<stdio.h></span>
#include<string.h>
#include<stdlib.h>
#define max 1000005
char a[200005][26];
typedef struct node
{
char data[15];
node *next;
} node;
typedef struct
{
node *front;
node *rear;
} Queue;
int init(Queue *q)
{
q->rear=q->front=(node *)malloc(max*sizeof(node));
if(!q->front) return 0;
q->front->next=NULL;
q->rear->next=NULL;
return 1;
}
void Add(Queue *q,char *a)
{
node *p;
p=(node *)malloc(sizeof(node));
strcpy(p->data,a);
p->next=NULL;
q->rear->next=p;
q->rear=p;
}
void Del(Queue *q)
{
node *p;
p=q->front->next;
q->front->next=p->next;;
if(q->rear==p)
q->rear=q->front;
free(p);
}
int main()
{
Queue Q;
int n,m,i,j;
char s[26],b[26];
while(~scanf("%d%d",&n,&m))
{
init(&Q);
int f=1;
int top=-1;
for(i=0; i<m; i++)
{
scanf("%s",b);
if(strcmp(b,"Add")==0)
{
scanf("%s",s);
if(top<n-1)
strcpy(a[++top],s);
else
Add(&Q,s);
}
else if(strcmp(b,"Del")==0)
{
if(top==-1)
f=0;
else
{
top--;
if(Q.rear!=Q.front)
{
strcmp(a[++top],Q.front->next->data);
Del(&Q);
}
}
}
else if(strcmp(b,"Out")==0)
{
if(Q.rear==Q.front)
f=0;
else
Del(&Q);
}
}
if(f)
{
for(i=top; i>=0; i--)
printf("%s\n",a[i]);
}
else printf("Error\n");
}
}