#include <bits/stdc++.h>
using namespace std;
/*{{{*/  //template
#define rep(i,n) for(int i=0;i<(int)(n);i++)
constexpr int INF = numeric_limits<int>::max()/2;
constexpr long long LINF = numeric_limits<long long>::max()/3;
#define mp make_pair
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
#define all(v) (v).begin(),(v).end()
#define sz(x) (int)(x).size()
#define debug(x) cerr<<#x<<":"<<x<<endl
#define debug2(x,y) cerr<<#x<<","<<#y":"<<x<<","<<y<<endl
//struct fin{ fin(){ cin.tie(0); ios::sync_with_stdio(false); } } fin_;
struct Double{ double d; explicit Double(double x) : d(x){} };
ostream& operator<<(ostream& os,const Double x){ os << fixed << setprecision(20) << x.d; return os; }
template<typename T> ostream& operator<<(ostream& os,const vector<T>& vec){ os << "["; for(const auto& v : vec){ os << v << ","; } os << "]"; return os; }
template<typename T,typename U> ostream& operator<<(ostream& os,const pair<T,U>& p){ os << "(" << p.first << ","<< p.second <<")"; return os; }
template<typename T> ostream& operator<<(ostream& os,const set<T>& st){ os<<"{"; for(T v:st) os<<v<<","; os <<"}"; return os; }
template<typename T,typename U> inline void chmax(T &x,U y){ if(y>x) x = y; }
template<typename T,typename U> inline void chmin(T &x,U y){ if(y<x) x = y; }
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
ll gcd(ll a,ll b){ if(b==0) return a; else return gcd(b,a%b); }
//constexpr double eps = 1e-14; 
constexpr double eps = 1e-10; 
constexpr ll mod = 1e9+7;
const int dx[]={1,0,-1,0} ,dy[] = {0,1,0,-1};
/*}}}*/

class Range{
    public:
        int s,t;    // [s,t)
        int id;
        Range(){}
        Range(int s,int t,int id) : s(s),t(t),id(id){}

        inline int length() const{
            return t-s;
        }
};

ostream& operator<<(ostream& os ,const Range& r){
    os << "(" << r.s << "," << r.t << "," << r.id << ")";
    return os;
}

template<typename T>
ostream& operator<<(ostream& os, const list<T> lst){
    os << "{";
    for(auto l : lst) os << l << ",";
    os << "}";
    return os;
}

void solve(int N){
    list<Range> table;
    table.insert(table.begin(),Range(0,1000000009,-1));
    rep(i,N){
        string com; cin >> com;
        if(com == "W"){
            int id,len;
            cin >> id >> len;
            for(auto itr = table.begin();itr != table.end(); itr++){
                if(len == 0) break;
                if(itr->id == -1){
                    if(itr->length() >= len){
                        int ns = itr->s + len;
                        int nt = itr->t; 
                        table.insert(next(itr),Range(ns,nt,-1));
                        itr->t = ns;
                        itr->id = id;
                        break;
                    }else{
                        itr->id = id;
                        len -= itr->length();
                    }
                }
            }
        }else if(com == "D"){
            int id; cin >> id;
            //cerr << "D " << id << endl;
            for(auto& r : table){
                //cout << r.id << " " << id << endl;
                if(r.id == id) r.id = -1;
            }
        }else if(com == "R"){
            int p; cin >> p;
            for(auto r : table){
                if(r.s <= p and p < r.t){
                    cout << r.id << endl;
                    break;
                }
            }
        }
    }
}

int main(){
    while(1){
        int n;
        cin >> n;
        if(n==0) break;
        solve(n);
        cout << endl;
    }
}



Measured memory_bytes: 3336