#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
int val[1000005],cnt[1000005],siz[1000005],dat[1000005],ch[1000005][2];
int tot,root;
int New(int v){
val[++tot]=v;
cnt[tot]=1;
siz[tot]=1;
dat[tot]=rand();
return tot;
}
void pushup(int id){
siz[id]=siz[ch[id][0]]+siz[ch[id][1]]+cnt[id];
}
void Rotate(int &id,int d){
int temp=ch[id][d^1];
ch[id][d^1]=ch[temp][d];
ch[temp][d]=id;
id=temp;
pushup(ch[id][d]);
pushup(id);
}
void build(){
root=New(-0x3f3f3f3f3f3f3f3f);
ch[root][1]=New(0x3f3f3f3f3f3f3f3f);
pushup(root);
}
void insert(int &id,int v){
if(!id){
id=New(v);
return;
}
if(v==val[id]){
cnt[id]++;
}
else{
int d=v<val[id]?0:1;
insert(ch[id][d],v);
if(dat[id]<dat[ch[id][d]])Rotate(id,d^1);
}
pushup(id);
}
void del(int &id,int v){
// cout<<id<<"-"<<v<<endl;
if(!id)return;
if(v==val[id]){
if(cnt[id]>1){
cnt[id]--;
}
else if(ch[id][0]||ch[id][1]){
if(!ch[id][1]||dat[ch[id][0]]>dat[ch[id][1]]){
Rotate(id,1);
del(ch[id][1],v);
}
else{
Rotate(id,0);
del(ch[id][0],v);
}
}
else{
id=0;
return;
}
}
else{
int d=v<val[id]?0:1;
del(ch[id][d],v);
}
pushup(id);
}
int getpre(int v){
int id=root,ans=0;
while(id){
if(val[id]==v){
return val[id];
}
else if(val[id]<v){
ans=val[id];
id=ch[id][1];
}
else{
id=ch[id][0];
}
}
return ans;
}
int getnext(int v){
int id=root,ans=0;
while(id){
if(val[id]==v){
return val[id];
}
else if(val[id]<v){
id=ch[id][1];
}
else{
ans=val[id];
id=ch[id][0];
}
}
return ans;
}
signed main(){
srand(time(NULL));
cin>>n;
build();
int cnt=0,ans=0;
for(int i=1;i<=n;i++){
int a,b;
cin>>a>>b;
if(a==0){
cnt++;
insert(root,b);
}
else{
// cout<<"_____________________________\n";
if(cnt==0)continue;
cnt--;
int pre=getpre(b),nxt=getnext(b);
if(abs(b-pre)<=abs(nxt-b)){
ans+=abs(b-pre);
ans%=1000000;
del(root,pre);
}
else{
ans+=abs(nxt-b);
ans%=1000000;
del(root,nxt);
}
// cout<<getpre(b)<<"||"<<getnext(b)<<endl;
}
}
cout<<ans%1000000;
return 0;
}