#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义队列的最大大小
#define MAX_SIZE 100000
// 定义队列结构
typedef struct {
int data[MAX_SIZE];
int front;
int rear;
} Queue;
// 初始化一个空队列
void initQueue(Queue* q) {
q->front = 0;
q->rear = 0;
}
// 检查队列是否为空
int isEmpty(Queue* q) {
return q->front == q->rear;
}
// 检查队列是否已满
int isFull(Queue* q) {
return (q->rear + 1) % MAX_SIZE == q->front;
}
// 将元素推入队列
void push(Queue* q, int x) {
if (isFull(q)) {
printf("error\n");
return;
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAX_SIZE;
}
// 从队列中弹出元素
void pop(Queue* q) {
if (isEmpty(q)) {
printf("error\n");
return;
}
printf("%d\n", q->data[q->front]);
q->front = (q->front + 1) % MAX_SIZE;
}
// 获取队首元素但不移除它
void front(Queue* q) {
if (isEmpty(q)) {
printf("error\n");
return;
}
printf("%d\n", q->data[q->front]);
}
int main() {
int n;
scanf("%d", &n);
Queue q;
initQueue(&q);
for (int i = 0; i < n; ++i) {
char op[10];
scanf("%s", op);
if (strcmp(op, "push") == 0) {
int x;
scanf("%d", &x);
push(&q, x);
} else if (strcmp(op, "pop") == 0) {
pop(&q);
} else if (strcmp(op, "front") == 0) {
front(&q);
}
}
return 0;
}