#include <bits/stdc++.h>
using namespace std;
const int MAXN = 31;
multiset<int> sv[MAXN + 1];
long long sum[MAXN + 1];
int q, x, tot, fat;
char op[2];
void add(int x) {
  tot++;
  for (int i = MAXN; i >= 0; i--) {
    if ((x >> i) & 1) {
      sum[i] += x;
      sv[i].insert(x);
      break;
    }
  }
}
void sub(int x) {
  tot--;
  for (int i = MAXN; i >= 0; i--) {
    if ((x >> i) & 1) {
      sum[i] -= x;
      auto it = sv[i].find(x);
      sv[i].erase(it);
      break;
    }
  }
}
void get() {
  fat = 0;
  long long pre = 0;
  for (int i = 0; i <= MAXN; i++) {
    if (sv[i].begin() == sv[i].end()) continue;
    if (*sv[i].begin() > 2LL * pre) fat++;
    pre += sum[i];
  }
}
int main() {
  tot = fat = 0;
  scanf("%d", &q);
  for (int i = 1; i <= q; i++) {
    scanf("%s%d", op, &x);
    if (op[0] == '+') {
      add(x);
    } else {
      sub(x);
    }
    get();
    printf("%d\n", tot - fat);
  }
  return 0;
}
