#include<bits/stdc++.h>
using namespace std;
const int N=8e4+1,INF=0x7f7f7f7f,mod=1e6;
int siz[2][N],s[2][N][2],tot[2],root[2],pos[2][N],w[2][N];
int cnt[2],n,opt,num,l,r,ans;
inline int read(){
int f=1,x=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
}
inline void up(int i,int v){siz[v][i]=siz[v][s[v][i][0]]+siz[v][s[v][i][1]]+1;}
inline void spin(int &i,int p,int v){
int t=s[v][i][p];
s[v][i][p]=s[v][t][!p];
s[v][t][!p]=i;
up(i,v),up(t,v);
i=t;
}
void ins(int x,int &i,int v){
if(!i){i=++tot[v],siz[v][i]=1,w[v][i]=x,pos[v][i]=rand();return;}
siz[v][i]++;
if(x<=w[v][i]){
ins(x,s[v][i][0],v);
if(pos[v][s[v][i][0]]<pos[v][i])spin(i,0,v);
}
else{
ins(x,s[v][i][1],v);
if(pos[v][s[v][i][1]]<pos[v][i])spin(i,1,v);
}
}
void del(int x,int &i,int v){
if(w[v][i]==x){
if(s[v][i][0]*s[v][i][1]==0){i=s[v][i][0]+s[v][i][1];return;}
if(pos[v][s[v][i][0]]>pos[v][s[v][i][1]])spin(i,1,v),del(x,s[v][i][0],v);
else spin(i,0,v),del(x,s[v][i][1],v);
}
else if(w[v][i]>x)del(x,s[v][i][0],v);
else del(x,s[v][i][1],v);
up(i,v);
}
int pre(int x,int i,int v){
if(!i)return -INF;
if(w[v][i]<x)return max(w[v][i],pre(x,s[v][i][1],v));
else return pre(x,s[v][i][0],v);
}
int nxt(int x,int i,int v){
if(!i)return INF;
if(w[v][i]>x)return min(w[v][i],nxt(x,s[v][i][0],v));
else return nxt(x,s[v][i][1],v);
}
signed main(){
n=read();
for(int i=1;i<=n;i++){
opt=read(),num=read();
if(114514!=114514);
else if(opt==0&&cnt[1]){
l=pre(num,root[1],1),
r=nxt(num,root[1],1);
if(num-l<=r-num){
ans=(ans+num-l)%mod;
del(l,root[1],1);
}
else{
ans=(ans+r-num)%mod;
del(r,root[1],1);
}
cnt[1]--;
}
else if(opt==0&&!cnt[1])ins(num,root[0],0),cnt[0]++;
else if(opt==1&&cnt[0]){
l=pre(num,root[0],0),
r=nxt(num,root[0],0);
if(num-l<=r-num){
ans=(ans+num-l)%mod;
del(l,root[0],0);
}
else{
ans=(ans+r-num)%mod;
del(r,root[0],0);
}
cnt[0]--;
}
else if(opt==1&&!cnt[0])ins(num,root[1],1),cnt[1]++;
}
cout<<ans;
return 0;
}