#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace __gnu_pbds;
#define int long long
__gnu_pbds::tree<std::pair<int, int>, __gnu_pbds::null_type,
std::less<std::pair<int, int> >, __gnu_pbds::rb_tree_tag,
__gnu_pbds::tree_order_statistics_node_update>
trr;
int n, p;
int cnt = 0, num = 0;
signed main() {
scanf("%lld%lld", &n, &p);
while (n--) {
char f; int k;
scanf(" %c%lld", &f, &k);
if (f == 'I') {
trr.insert({k - cnt, n});
}
if (f == 'A') {
cnt += k;
}
if (f == 'S') {
cnt -= k;
while (!trr.empty() && trr.find_by_order(0)->first + cnt < p) {
trr.erase(trr.find_by_order(0));
num++;
}
}
if (f == 'F') {
if (k > trr.size()) {
printf("-1\n");
} else {
printf("%lld\n", trr.find_by_order(trr.size() - k)->first + cnt);
}
}
}
printf("%lld\n", num);
return 0;
}