/*
  Author: Slobodan Mitrovic
  e-mail: boba5555@gmail.com
  date: 25.05.2009.
  Complexity: O(m log max_v) - in this case, max_v = 200000
*/
#include <iostream>
#include <cstdio>
#define ffor(_a,_f,_t) for(int _a=(_f),__t=(_t);_a<__t;_a++)
#define all(_v) (_v).begin() , (_v).end()
#define sz size()
#define pb push_back
#define SET(__set, val) memset(__set, val, sizeof(__set))
#define FOR(__i, __n) ffor (__i, 0, __n)

using namespace std;

const int MAXVAL = 200002;
const int HIGHEST_BIT = 1 << 17;

int bit[MAXVAL];
long long bitWeight[MAXVAL]; // 100000 * 200000 > 2^32

void update(int idx){
  int weight = idx;
  while (idx < MAXVAL){
    bit[idx]++;
    bitWeight[idx] += weight;
    idx += (idx & -idx);
  }
}

struct mpair{
  long long a, b;
  mpair(){
  }

  mpair(long long _a, long long _b){
    a = _a;
    b = _b;
  }
};

mpair read(int idx){
  long long ret = 0, retW = 0;
  while (idx){
    ret += bit[idx];
    retW += bitWeight[idx];
    idx -= (idx & -idx);
  }

  return mpair(ret, retW);
}

int find(int cumFre){
  int ret = -1, idx = 0, bitMask = HIGHEST_BIT;

    while ((bitMask != 0) && (idx < MAXVAL)){
        int tIdx = idx + bitMask;
        if (tIdx < MAXVAL){
          if (cumFre > bitWeight[tIdx]){
             idx = tIdx;
             cumFre -= bitWeight[tIdx];
          }
          else
        ret = tIdx;
    }
        bitMask >>= 1;
    }

    return ret;
}

int main(){
    freopen("baloni.in", "rt", stdin);
    freopen("baloni.out", "wt", stdout);
    int M, v, ret, canTake, cntOpN = 0, idx;
    mpair rr;
    char op;
    scanf("%d", &M);
    SET(bit, 0);
    SET(bitWeight, 0);
    FOR (i, M){
    scanf("\n%c %d", &op, &v);
    if (op == 'N'){
      update(v);
      cntOpN++;
    }
    else{
      idx = find(v);
      if (idx == -1)
        printf("%d\n", cntOpN);
      else{
        rr = read(idx - 1);
        ret = rr.a;
        v -= rr.b;
        ret += v / idx;
        printf("%d\n", ret);
      }
    }
  }
  return 0;
}
