#include <bits/stdc++.h>
#define ll long long
#define sti string
#define bit(n,i) ((n>>i) &1)
#define maxn 200005
#define fi first
#define se second
using namespace std;
const int INFTY = 1e9 + 1;
int n, m;
int lab[maxn], sz[maxn], parent[maxn], weight[maxn];
int visited;
inline void Minimize(int& Target, int Value)
{
if (Value < Target) Target = Value;
}
void Init()
{
for (int u = 1; u <= n; ++u)
{
sz[u] = 1;
parent[u] = 0;
}
fill(lab + 1, lab + n + 1, 0);
visited = 0;
}
void AddChild(int p, int c)
{
parent[c] = p;
if (p != 0)
sz[p] += sz[c];
}
void RemoveChild(int p, int c)
{
parent[c] = 0;
sz[p] -= sz[c];
}
void UpTree(int x)
{
int y = parent[x];
int z = parent[y];
if (z != 0)
RemoveChild(z, y);
RemoveChild(y, x);
if (z != 0 && weight[x] < weight[y])
{
AddChild(z, x);
AddChild(z, y);
}
else
{
AddChild(x, y);
AddChild(z, x);
swap(weight[x], weight[y]);
}
}
void Calibrate(int x)
{
while (parent[x] != 0)
if ((ll)sz[x] * 3 > (ll)sz[parent[x]] * 2)
UpTree(x);
else
x = parent[x];
}
int PathMin(int s, int t)
{
Calibrate(s);
Calibrate(t);
int a = 0;
++visited;
for (int i = s; i != 0; i = parent[i]) lab[i] = visited;
for (int i = t; i != 0; i = parent[i])
if (lab[i] == visited)
{
a = i; break;
}
if (a == 0) return -1;
int res = INFTY;
for (int i = s; i != a; i = parent[i])
Minimize(res, weight[i]);
for (int i = t; i != a; i = parent[i])
Minimize(res, weight[i]);
return res;
}
void AddEdge(int u, int v, int b)
{
int temp = PathMin(u, v);
if (temp >= b) return;
while (parent[v] != 0) UpTree(v);
while (parent[u] != 0) UpTree(u);
weight[v] = b;
if (parent[v] != u)
AddChild(u, v);
}
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin >> n >> m;
if(n<=200){
Init();
while (m-- > 0)
{
int u, v, w, s, t;
cin >> u >> v >> w >> s >> t;
AddEdge(u, v, INFTY - w);
int r = PathMin(s, t);
if (r == -1) cout << -1 << '\n';
else cout << INFTY - r << '\n';
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3RpIHN0cmluZwojZGVmaW5lIGJpdChuLGkpICgobj4+aSkgJjEpCiNkZWZpbmUgbWF4biAyMDAwMDUKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBJTkZUWSA9IDFlOSArIDE7CgppbnQgbiwgbTsKaW50IGxhYlttYXhuXSwgc3pbbWF4bl0sIHBhcmVudFttYXhuXSwgd2VpZ2h0W21heG5dOwppbnQgdmlzaXRlZDsKCmlubGluZSB2b2lkIE1pbmltaXplKGludCYgVGFyZ2V0LCBpbnQgVmFsdWUpCnsKICAgIGlmIChWYWx1ZSA8IFRhcmdldCkgVGFyZ2V0ID0gVmFsdWU7Cn0KCnZvaWQgSW5pdCgpCnsKICAgIGZvciAoaW50IHUgPSAxOyB1IDw9IG47ICsrdSkKICAgIHsKICAgICAgICBzelt1XSA9IDE7CiAgICAgICAgcGFyZW50W3VdID0gMDsKICAgIH0KICAgIGZpbGwobGFiICsgMSwgbGFiICsgbiArIDEsIDApOwogICAgdmlzaXRlZCA9IDA7Cn0KCnZvaWQgQWRkQ2hpbGQoaW50IHAsIGludCBjKQp7CiAgICBwYXJlbnRbY10gPSBwOwogICAgaWYgKHAgIT0gMCkKICAgICAgICBzeltwXSArPSBzeltjXTsKfQoKdm9pZCBSZW1vdmVDaGlsZChpbnQgcCwgaW50IGMpCnsKICAgIHBhcmVudFtjXSA9IDA7CiAgICBzeltwXSAtPSBzeltjXTsKfQoKdm9pZCBVcFRyZWUoaW50IHgpCnsKICAgIGludCB5ID0gcGFyZW50W3hdOwogICAgaW50IHogPSBwYXJlbnRbeV07CiAgICBpZiAoeiAhPSAwKQogICAgICAgIFJlbW92ZUNoaWxkKHosIHkpOwogICAgUmVtb3ZlQ2hpbGQoeSwgeCk7CiAgICBpZiAoeiAhPSAwICYmIHdlaWdodFt4XSA8IHdlaWdodFt5XSkKICAgIHsKICAgICAgICBBZGRDaGlsZCh6LCB4KTsKICAgICAgICBBZGRDaGlsZCh6LCB5KTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBBZGRDaGlsZCh4LCB5KTsKICAgICAgICBBZGRDaGlsZCh6LCB4KTsKICAgICAgICBzd2FwKHdlaWdodFt4XSwgd2VpZ2h0W3ldKTsKICAgIH0KfQoKdm9pZCBDYWxpYnJhdGUoaW50IHgpCnsKICAgIHdoaWxlIChwYXJlbnRbeF0gIT0gMCkKICAgICAgICBpZiAoKGxsKXN6W3hdICogMyA+IChsbClzeltwYXJlbnRbeF1dICogMikKICAgICAgICAgICAgVXBUcmVlKHgpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgeCA9IHBhcmVudFt4XTsKfQoKaW50IFBhdGhNaW4oaW50IHMsIGludCB0KQp7CiAgICBDYWxpYnJhdGUocyk7CiAgICBDYWxpYnJhdGUodCk7CiAgICBpbnQgYSA9IDA7CiAgICArK3Zpc2l0ZWQ7CiAgICBmb3IgKGludCBpID0gczsgaSAhPSAwOyBpID0gcGFyZW50W2ldKSBsYWJbaV0gPSB2aXNpdGVkOwogICAgZm9yIChpbnQgaSA9IHQ7IGkgIT0gMDsgaSA9IHBhcmVudFtpXSkKICAgICAgICBpZiAobGFiW2ldID09IHZpc2l0ZWQpCiAgICAgICAgewogICAgICAgICAgICBhID0gaTsgYnJlYWs7CiAgICAgICAgfQogICAgaWYgKGEgPT0gMCkgcmV0dXJuIC0xOwogICAgaW50IHJlcyA9IElORlRZOwogICAgZm9yIChpbnQgaSA9IHM7IGkgIT0gYTsgaSA9IHBhcmVudFtpXSkKICAgICAgICBNaW5pbWl6ZShyZXMsIHdlaWdodFtpXSk7CiAgICBmb3IgKGludCBpID0gdDsgaSAhPSBhOyBpID0gcGFyZW50W2ldKQogICAgICAgIE1pbmltaXplKHJlcywgd2VpZ2h0W2ldKTsKICAgIHJldHVybiByZXM7Cn0KCnZvaWQgQWRkRWRnZShpbnQgdSwgaW50IHYsIGludCBiKQp7CiAgICBpbnQgdGVtcCA9IFBhdGhNaW4odSwgdik7CiAgICBpZiAodGVtcCA+PSBiKSByZXR1cm47CiAgICB3aGlsZSAocGFyZW50W3ZdICE9IDApIFVwVHJlZSh2KTsKICAgIHdoaWxlIChwYXJlbnRbdV0gIT0gMCkgVXBUcmVlKHUpOwogICAgd2VpZ2h0W3ZdID0gYjsKICAgIGlmIChwYXJlbnRbdl0gIT0gdSkKICAgICAgICBBZGRDaGlsZCh1LCB2KTsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgaWYobjw9MjAwKXsKICAgICAgICBJbml0KCk7CiAgICAgICAgd2hpbGUgKG0tLSA+IDApCiAgICAgICAgewogICAgICAgICAgICBpbnQgdSwgdiwgdywgcywgdDsKICAgICAgICAgICAgY2luID4+IHUgPj4gdiA+PiB3ID4+IHMgPj4gdDsKICAgICAgICAgICAgQWRkRWRnZSh1LCB2LCBJTkZUWSAtIHcpOwogICAgICAgICAgICBpbnQgciA9IFBhdGhNaW4ocywgdCk7CiAgICAgICAgICAgIGlmIChyID09IC0xKSBjb3V0IDw8IC0xIDw8ICdcbic7CiAgICAgICAgICAgIGVsc2UgY291dCA8PCBJTkZUWSAtIHIgPDwgJ1xuJzsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=