#include <bits/stdc++.h>
using namespace std;
const int MaxN=2e5;
const int MaxA=2e5;
vector <int> pos[MaxA+1];
int add[MaxN+1]={};
int tag[MaxN+1]={};
int main() {
int N,t,x;
cin>>N;
for(int n=1;n<=N;n++){
cin>>t>>x;
tag[n]=(t==1)?0:-1;
if(t==1){
pos[x].push_back(n);
}
if(t==2){
if(pos[x].empty()){
cout<<-1;
return 0;
}
add[n]-=1;
//位置等於n時減少一瓶藥水
add[pos[x].back()]+=1;
//位置等於pos[x].back時撿藥水
tag[pos[x].back()]=1;
pos[x].pop_back();
}
}
int ans=0,maxans=0;
for(int n=1;n<=N;n++){
ans+=add[n];
maxans=max(ans,maxans);
}
cout<<maxans<<"\n";
for(int n=1;n<=N;n++){
if(-1<tag[n])
cout<<tag[n]<<" ";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTWF4Tj0yZTU7CmNvbnN0IGludCBNYXhBPTJlNTsKdmVjdG9yIDxpbnQ+IHBvc1tNYXhBKzFdOwppbnQgYWRkW01heE4rMV09e307CmludCB0YWdbTWF4TisxXT17fTsKCmludCBtYWluKCkgewoJaW50IE4sdCx4OwoJY2luPj5OOwoJZm9yKGludCBuPTE7bjw9TjtuKyspewoJCWNpbj4+dD4+eDsKCQl0YWdbbl09KHQ9PTEpPzA6LTE7CgkJaWYodD09MSl7CgkJCXBvc1t4XS5wdXNoX2JhY2sobik7CgkJfQoJCWlmKHQ9PTIpewoJCQlpZihwb3NbeF0uZW1wdHkoKSl7CgkJCQljb3V0PDwtMTsKCQkJCXJldHVybiAwOwoJCQl9CgkJCWFkZFtuXS09MTsKCQkJLy/kvY3nva7nrYnmlrxu5pmC5rib5bCR5LiA55O26Jel5rC0CgkJCWFkZFtwb3NbeF0uYmFjaygpXSs9MTsKCQkJLy/kvY3nva7nrYnmlrxwb3NbeF0uYmFja+aZguaSv+iXpeawtAoJCQl0YWdbcG9zW3hdLmJhY2soKV09MTsKCQkJcG9zW3hdLnBvcF9iYWNrKCk7CgkJfQoJfQoJaW50IGFucz0wLG1heGFucz0wOwoJZm9yKGludCBuPTE7bjw9TjtuKyspewoJCWFucys9YWRkW25dOwoJCW1heGFucz1tYXgoYW5zLG1heGFucyk7Cgl9Cgljb3V0PDxtYXhhbnM8PCJcbiI7Cglmb3IoaW50IG49MTtuPD1OO24rKyl7CgkJaWYoLTE8dGFnW25dKQoJCQljb3V0PDx0YWdbbl08PCIgIjsKCX0KCXJldHVybiAwOwp9