#include <iostream>
#include <stack>
#include <string>
using namespace std;
const int maxn = 30;
int pre[maxn];
int in[maxn];
int post[maxn];
void solve(int preL, int inL, int postL, int n)
{
int i,L,R;
if (n == 0)return;
if (n == 1) { post[postL] = pre[preL]; return;}
int root = pre[preL];
post[postL + n - 1] = root;
for ( i = 0; i < n; i++)
{
if (root == in[i + inL])
break;
}
L = i; R = n - i - 1;
solve(preL + 1, inL, postL, L);
solve(preL + 1 + L, inL + L + 1, postL + L, R);
}
int main()
{
int n,num,i=0,j=0;
string s;
cin >> n;
stack<int>pt;
for (int z = 0; z < 2 * n; z++)
{
cin >> s;
if (s == "Push")
{
cin >> num;
pt.push(num);
pre[i++] = num;
}
else
{
num = pt.top();
pt.pop();
in[j++] = num;
}
}
solve(0, 0, 0, n);
cout << post[0];
for (int i = 1; i < n; i++)
{
cout<< " "<< post[i];
}
return 0;
}