//模拟队列
#include<iostream>
#include<string>
using namespace std;
const int N = 100010;
//在队尾插入元素,在队头弹出元素
int q[N], head, tail; // 分别表示队列、队头、队尾
// 数组:队头------------队尾
//插入
void push(int x)
{
q[tail++] = x;
}
int main()
{
int m;
cin >> m;
while (m--)
{
string op;
cin >> op;
if (op == "push") // 向队列插入一个数
{
int x;
cin >> x;
push(x);
}
else if (op == "pop") // 队列弹出一个数
{
if (tail - head) head++;
}
else if (op == "empty") // 判断队列是否为空
{
if (tail - head != 0) cout << "NO" << endl;
else cout << "YES" << endl;
}
else if (op == "query") // 查询队头元素
{
cout << q[head] << endl;
}
}
return 0;
}