#include <cstdio>
#include <algorithm>
#include <vector>
#include <climits>
#include <cstring>
#include <bitset>

#define f first
#define s second
#define pb push_back
#define NMAX 100000
#define pii pair <int, int>

using namespace std;

char buffer[NMAX + 10];
int bufpoz = NMAX + 10;

vector <int> v;

inline void get (int &n);

int main ()
{
  //  freopen ("file.in", "r", stdin);

    int m;
    get (m);

    for (; m; --m)
    {
        int op, val;
        get (op);

        if (op != 2) get (val);

        if (op == 1) v.push_back (val);
        else if (op == 2) v.pop_back ();
        else if (v.empty ()) printf ("Empty\n");
        else
        {
            bool OK = false;
            for (auto &it : v)
                if (it <= val)
                {
                    OK = true;
                    printf ("%d ", it);
                }

            if (!OK) printf ("Empty");

            printf ("\n");
        }
    }

    return 0;
}

inline void get (int &n)
{
    n = 0;
    if (bufpoz > NMAX)
        fread (buffer, NMAX, 1, stdin), bufpoz = 0;

    int semn = 1;
    while ('0' > buffer[bufpoz] || buffer[bufpoz] > '9')
    {
        if (buffer[bufpoz] == '-') semn = -1;

        if (++bufpoz == NMAX)
            fread (buffer, 1, NMAX, stdin), bufpoz = 0;
    }

    while ('0' <= buffer[bufpoz] && buffer[bufpoz] <= '9')
    {
        n = n * 10 + buffer[bufpoz] - 48;
        if (++bufpoz == NMAX)
            fread (buffer, 1, NMAX, stdin), bufpoz = 0;
    }

    n *= semn;
}