#include <iostream>
using namespace std;
struct Node
{
int x;
char y;
Node()
{
x = 0;
y = NULL;
}
Node(int a, char b)
{
x = a;
y = b;
}
};
class Queue
{
public:
Queue() :queue(), mHead(0), mTail(0) {}
~Queue() {}
void Push(int a, char b)
{
Node* t = new Node(a, b);
if (queue[mHead] == nullptr)
{
queue[mHead] = t;
queue[mTail] = t;
}
else
{
mTail += 1;
queue[mTail] = t;
}
}
void Pop()
{
int p = mHead;
cout << queue[p]->x << ' ' << queue[p]->y << '\n';
mHead = p + 1;
delete queue[p];
}
private:
Node* queue[10];
int mHead, mTail;
};
int main()
{
int t;
cin >> t;
Queue q;
for (int i = 0; i < t; i++)
{
int a;
char b;
cin >> a >> b;
q.Push(a, b);
}
for (int i = 0; i < t; i++)
q.Pop();
return 0;
}