#include <iostream>
#include <vector>
using namespace std;
string ab[100005][2];
string ans[100005];
int n,u=0,d;
//void dfs(int s){
//
// if (s==n){
// for (int i=0;i<n;i++){
// cout << ans[i] << endl;
// }
// cout << endl;
// exit(0);
////return;
// }
// if (ab[s][1]=="SAME"){
// ans[s]=ab[s][0];
// dfs(s+1);
// }else if (ab[s][1]=="UP"){
// for (int i=s+1;i<n;i++){
// if (ans[i].empty()){
// ans[i]=ab[s][0];
// dfs(s+1);
// ans[i]="";
// }
// }
// }else{
// for (int i=0;i<s;i++){
// if (ans[i].empty()){
// ans[i]=ab[s][0];
// dfs(s+1);
// ans[i]="";
// }
// }
// }
//}
int main(){
cin >> n;
d=n-1;
for (int i=0;i<n;i++){
cin >> ab[i][0] >> ab[i][1];
}
for (int i=0;i<n;i++){
if (ab[i][1]=="SAME"){
ans[i]=ab[i][0];
}else if (ab[i][1]=="UP"){
while (!ans[d--].empty());
ans[d+1]=ab[i][0];
}else{
while (!ans[u++].empty());
ans[u-1]=ab[i][0];
}
}
for (int i=0;i<n;i++){
cout <<ans[i] << endl;
}
return 0;
}
样例过了,自测过了,两种方法一个20一个10