#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
#define maxN 100007
#define oo 1000000000000000000
long long ans[maxN];
int n;
struct planet
{
int t;
int ll, lr, rl, rr;
};
planet inp[maxN];
struct event
{
int id;
bool sta;
int t;
};
event line[maxN*2];
bool cmp(event x, event y)
{
if(x.t != y.t)
return x.t < y.t;
return x.sta > y.sta;
}
long long st[maxN*4];
void readData()
{
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> inp[i].t >> inp[i].ll >> inp[i].lr >> inp[i].rl >> inp[i].rr;
line[i].id = i;
line[i].t = inp[i].rl;
line[i].sta = true;
line[i+n].id = i;
line[i+n].t = inp[i].rr;
line[i+n].sta = false;
}
sort(line+1, line+2*n+1, cmp);
for(int i = 0; i < 4*maxN; i++)
st[i] = oo;
}
void update(int id, int l, int r, int pos, long long val)
{
if(l == r)
{
st[id] = val;
return;
}
int mid = (l+r)/2;
if(pos <= mid)
update(id*2, l, mid, pos, val);
else update(id*2+1, mid+1, r, pos, val);
st[id] = min(st[id*2], st[id*2+1]);
}
long long query(int id, int l, int r, int u, int v)
{
if(l > v || u > r)
return oo;
if(u <= l && r <= v)
return st[id];
int mid = (l+r)/2;
long long ans1 = query(id*2, l, mid, u, v);
long long ans2 = query(id*2+1, mid+1, r, u, v);
return min(ans1, ans2);
}
void solve()
{
int i = 0;
queue<int>add;
for(int curTime = 1; curTime <= n; curTime++)
{
while(i < 2*n && line[i+1].t == curTime && line[i+1].sta)
{
++i;
if (line[i].id < curTime)
update(1, 1, n, line[i].id, ans[line[i].id] + inp[line[i].id].t - line[i].id);
else add.push(i);
}
if(curTime == 1)
ans[curTime] = 0;
else
{
long long curAns = query(1, 1, n, inp[curTime].ll, inp[curTime].lr);
if(curAns == oo)
{
ans[curTime] = oo;
}
else ans[curTime] = curAns + inp[curTime].t + curTime;
}
while(!add.empty())
{
int j = add.front();
add.pop();
update(1, 1, n, line[j].id, ans[line[j].id] + inp[line[j].id].t - line[j].id);
}
while(i < 2*n && line[i+1].t == curTime && !line[i+1].sta)
{
i++;
update(1, 1, n, line[i].id, oo);
}
}
for(int i = 2; i <= n; i++)
if(ans[i] < oo)
cout << ans[i] << " ";
else cout << "-1 ";
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
readData();
solve();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8cXVldWU+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBtYXhOIDEwMDAwNwojZGVmaW5lIG9vIDEwMDAwMDAwMDAwMDAwMDAwMDAKCmxvbmcgbG9uZyBhbnNbbWF4Tl07CmludCBuOwoKc3RydWN0IHBsYW5ldAp7CiAgICBpbnQgdDsKICAgIGludCBsbCwgbHIsIHJsLCBycjsKfTsKcGxhbmV0IGlucFttYXhOXTsKCnN0cnVjdCBldmVudAp7CiAgICBpbnQgaWQ7CiAgICBib29sIHN0YTsKICAgIGludCB0Owp9OwoKZXZlbnQgbGluZVttYXhOKjJdOwoKYm9vbCBjbXAoZXZlbnQgeCwgZXZlbnQgeSkKewogICAgaWYoeC50ICE9IHkudCkKICAgICAgICByZXR1cm4geC50IDwgeS50OwogICAgcmV0dXJuIHguc3RhID4geS5zdGE7Cn0KCmxvbmcgbG9uZyBzdFttYXhOKjRdOwoKdm9pZCByZWFkRGF0YSgpCnsKICAgIGNpbiA+PiBuOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGlucFtpXS50ID4+IGlucFtpXS5sbCA+PiBpbnBbaV0ubHIgPj4gaW5wW2ldLnJsID4+IGlucFtpXS5ycjsKICAgICAgICBsaW5lW2ldLmlkID0gaTsKICAgICAgICBsaW5lW2ldLnQgPSBpbnBbaV0ucmw7CiAgICAgICAgbGluZVtpXS5zdGEgPSB0cnVlOwogICAgICAgIGxpbmVbaStuXS5pZCA9IGk7CiAgICAgICAgbGluZVtpK25dLnQgPSBpbnBbaV0ucnI7CiAgICAgICAgbGluZVtpK25dLnN0YSA9IGZhbHNlOwogICAgfQogICAgc29ydChsaW5lKzEsIGxpbmUrMipuKzEsIGNtcCk7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgNCptYXhOOyBpKyspCiAgICAgICAgc3RbaV0gPSBvbzsKfQoKdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCBwb3MsIGxvbmcgbG9uZyB2YWwpCnsKICAgIGlmKGwgPT0gcikKICAgIHsKICAgICAgICBzdFtpZF0gPSB2YWw7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZCA9IChsK3IpLzI7CiAgICBpZihwb3MgPD0gbWlkKQogICAgICAgIHVwZGF0ZShpZCoyLCBsLCBtaWQsIHBvcywgdmFsKTsKICAgIGVsc2UgdXBkYXRlKGlkKjIrMSwgbWlkKzEsIHIsIHBvcywgdmFsKTsKICAgIHN0W2lkXSA9IG1pbihzdFtpZCoyXSwgc3RbaWQqMisxXSk7Cn0KCmxvbmcgbG9uZyBxdWVyeShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KQp7CiAgICBpZihsID4gdiB8fCB1ID4gcikKICAgICAgICByZXR1cm4gb287CiAgICBpZih1IDw9IGwgJiYgciA8PSB2KQogICAgICAgIHJldHVybiBzdFtpZF07CiAgICBpbnQgbWlkID0gKGwrcikvMjsKICAgIGxvbmcgbG9uZyBhbnMxID0gcXVlcnkoaWQqMiwgbCwgbWlkLCB1LCB2KTsKICAgIGxvbmcgbG9uZyBhbnMyID0gcXVlcnkoaWQqMisxLCBtaWQrMSwgciwgdSwgdik7CiAgICByZXR1cm4gbWluKGFuczEsIGFuczIpOwp9Cgp2b2lkIHNvbHZlKCkKewogICAgaW50IGkgPSAwOwogICAgcXVldWU8aW50PmFkZDsKICAgIGZvcihpbnQgY3VyVGltZSA9IDE7IGN1clRpbWUgPD0gbjsgY3VyVGltZSsrKQogICAgewogICAgICAgIHdoaWxlKGkgPCAyKm4gJiYgbGluZVtpKzFdLnQgPT0gY3VyVGltZSAmJiBsaW5lW2krMV0uc3RhKQogICAgICAgIHsKICAgICAgICAgICAgKytpOwogICAgICAgICAgICBpZiAobGluZVtpXS5pZCA8IGN1clRpbWUpCiAgICAgICAgICAgICAgICB1cGRhdGUoMSwgMSwgbiwgbGluZVtpXS5pZCwgYW5zW2xpbmVbaV0uaWRdICsgaW5wW2xpbmVbaV0uaWRdLnQgLSBsaW5lW2ldLmlkKTsKICAgICAgICAgICAgZWxzZSBhZGQucHVzaChpKTsKICAgICAgICB9CiAgICAgICAgaWYoY3VyVGltZSA9PSAxKQogICAgICAgICAgICBhbnNbY3VyVGltZV0gPSAwOwogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGxvbmcgbG9uZyBjdXJBbnMgPSBxdWVyeSgxLCAxLCBuLCBpbnBbY3VyVGltZV0ubGwsIGlucFtjdXJUaW1lXS5scik7CiAgICAgICAgICAgIGlmKGN1ckFucyA9PSBvbykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYW5zW2N1clRpbWVdID0gb287CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBhbnNbY3VyVGltZV0gPSBjdXJBbnMgKyBpbnBbY3VyVGltZV0udCArIGN1clRpbWU7CiAgICAgICAgfQogICAgICAgIHdoaWxlKCFhZGQuZW1wdHkoKSkKICAgICAgICB7CiAgICAgICAgICAgIGludCBqID0gYWRkLmZyb250KCk7CiAgICAgICAgICAgIGFkZC5wb3AoKTsKICAgICAgICAgICAgdXBkYXRlKDEsIDEsIG4sIGxpbmVbal0uaWQsIGFuc1tsaW5lW2pdLmlkXSArIGlucFtsaW5lW2pdLmlkXS50IC0gbGluZVtqXS5pZCk7CiAgICAgICAgfQogICAgICAgIHdoaWxlKGkgPCAyKm4gJiYgbGluZVtpKzFdLnQgPT0gY3VyVGltZSAmJiAhbGluZVtpKzFdLnN0YSkKICAgICAgICB7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgdXBkYXRlKDEsIDEsIG4sIGxpbmVbaV0uaWQsIG9vKTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAyOyBpIDw9IG47IGkrKykKICAgICAgICBpZihhbnNbaV0gPCBvbykKICAgICAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgIiAiOwogICAgICAgIGVsc2UgY291dCA8PCAiLTEgIjsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIHJlYWREYXRhKCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K