#include<bits/stdc++.h>
#define ri register int
using namespace std;
inline int rd(){
int x=0,y=1;char c=getchar();
for(;c<'0'||c>'9';c=getchar())if(c=='-')y=-1;
for(;c>='0'&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);
return x*y;
}
const int N=1000005;
int n,m,la[N],qz[N],a[N],to;string s;
struct nd{int op,x,a,qz,la;}o;vector<nd>vc;
int main(){
ios::sync_with_stdio(false);cin>>n;
for(ri x;n--;){
cin>>s;
if(s=="+"){
cin>>x;vc.push_back({1,x,a[to+1],qz[to+1],la[x]});
a[++to]=x;if(la[x]&&la[x]<to&&a[la[x]]==x)qz[to]=qz[to-1];else la[x]=to,qz[to]=qz[to-1]+1;
}else if(s=="-"){
cin>>x;vc.push_back({2,x,0,0,0});to-=x;
}else if(s=="?")cout<<qz[to]<<endl;
else{
o=vc.back();vc.pop_back();
if(o.op==1)a[to]=o.a,qz[to]=o.qz,la[o.x]=o.la,--to;
else to+=o.x;
}
}
return 0;
}