struct DelQueue
{
priority_queue<int> q1,q2; int sum;
inline void ins(int x) {q1.emplace(x),sum+=x;}
inline void del(int x) {q2.emplace(x),sum-=x;}
inline void rew() {while(q1.size()&&q2.size()&&q1.top()==q2.top()) q1.pop(),q2.pop();}
inline int top() {return rew(),q1.top();}
inline void pop() {sum-=top(),q1.pop();}
inline int size() {return q1.size()-q2.size();}
};