#include <bits/stdc++.h>
using namespace std;
template <class T>
bool uin(T &a, T b) {
  return a > b ? (a = b, true) : false;
}
template <class T>
bool uax(T &a, T b) {
  return a < b ? (a = b, true) : false;
}
multiset<int> gr[31];
long long sum[31];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.precision(10);
  cout << fixed;
  int q;
  cin >> q;
  int n = 0;
  for (int qq = 0; qq < (int)(q); ++qq) {
    char c;
    int x;
    cin >> c >> x;
    int id = 31 - __builtin_clz(x);
    if (c == '+')
      gr[id].insert(x), sum[id] += x, ++n;
    else
      gr[id].erase(gr[id].find(x)), sum[id] -= x, --n;
    int ans = max(0, n - 1);
    long long psum = 0;
    for (int i = 0; i < (int)(31); ++i) {
      if (psum && !gr[i].empty()) {
        if (*gr[i].begin() > 2 * psum) --ans;
      }
      psum += sum[i];
    }
    cout << ans << '\n';
  }
  return 0;
}
