using System;
using static System.Console;
using System.Collections;
using System.Collections.Generic;
using System.Text;
public class main
{
static void Main()
{
int orderAmount = Convert.ToInt32(ReadLine());
StringBuilder strBuilder = new StringBuilder();
List<int> list = new List<int>();
Queue<int> que = new Queue<int>();
for(int i = 0; i < orderAmount; i++)
{
string order = ReadLine();
switch (order[1])
{
case 'u':
{
string[] temp = order.Split();
que.Enqueue(Convert.ToInt32(temp[1]));
break;
}
case 'o':
{
if(que.Count > 0)
strBuilder.Append(que.Dequeue() + "\n");
else
strBuilder.Append("-1\n");
break;
}
case 'i':
{
strBuilder.Append(que.Count+"\n");
break;
}
case 'm':
{
if(que.Count == 0)
strBuilder.Append("1\n");
else
strBuilder.Append("0\n");
break;
}
case 'r':
{
if(que.Count == 0)
strBuilder.Append("-1\n");
else
strBuilder.Append(que.Peek()+"\n");
break;
}
case 'a':
{
if(que.Count == 0)
strBuilder.Append("-1\n");
else if(que.Count == 1)
strBuilder.Append(que.Peek()+"\n");
else
{
int queCount = que.Count;
for(int j = 0; j < que.Count-1; j++)
list.Add(que.Dequeue());
list.Add(que.Peek());
strBuilder.Append(que.Dequeue()+"\n");
for(int j = 0; j < queCount; j++)
que.Enqueue(list[j]);
}
list.Clear();
break;
}
}
}
WriteLine(strBuilder.ToString());
}
}