#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
struct str{
int l,r,num;
};
void solve(){
int n;
cin>>n;
vector<str>a(n+1);
vector<int>b(n+1);
for(int i=1;i<=n;i++){
cin>>a[i].l>>a[i].r;
a[i].num=i;
b[i]=i;
}
auto cmp=[&](str str1,str str2)->bool{
if(str1.r==str2.r)return str1.l>str2.l;
else return str1.r<str2.r;
};
sort(a.begin()+1,a.end(),cmp);
vector<int>ans(n+1);
for(int i=1;i<=n;i++){
auto it=lower_bound(b.begin()+1,b.end(),a[i].l);
if(it==b.end()||*it>a[i].r){
cout<<-1;
return;
}
ans[a[i].num]=*it;
b.erase(it);
}
for(int i=1;i<=n;i++){
cout<<ans[i]<<" ";
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
solve();
return 0;
}