#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll oo = 2e18;
const int N = 2e5+5;
const int M = 3e5+5;
struct Edge {
int u, v; ll p, w;
bool operator<(const Edge& b) const {
return p < b.p;
}
} edges[M];
struct Node {
int to; ll w;
};
int n, m;
ll D[N];
vector<Node> adj[N];
int p[N], sz[N];
int find(int u) {
return (p[u] == u) ? u : (p[u] = find(p[u]));
}
void unite(int u, int v) {
u = find(u), v = find(v);
if (u == v) return;
if (sz[u] < sz[v]) swap(u, v);
p[v] = u;
sz[u] += sz[v];
}
void solve() {
cin >> n >> m;
for (int i = 0; i < m; i++)
cin >> edges[i].u >> edges[i].v >> edges[i].p >> edges[i].w;
sort(edges, edges + m);
for (int i = 1; i <= n; i++) {
p[i] = i;
sz[i] = 1;
}
ll P = -1;
for (int i = 0; i < m; i++) {
unite(edges[i].u, edges[i].v);
if (find(1) == find(n)) {
P = edges[i].p;
break;
}
}
for (int i = 0; i < m; i++)
if (edges[i].p <= P) {
adj[edges[i].u].push_back({edges[i].v, edges[i].w});
adj[edges[i].v].push_back({edges[i].u, edges[i].w});
} else break;
priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> pq;
for (int i = 1; i <= n; i++) D[i] = oo;
D[1] = 0;
pq.push({0, 1});
while (!pq.empty()) {
pair<ll, int> t = pq.top(); pq.pop();
ll d = t.first; int u = t.second;
if (d > D[u]) continue;
if (u == n) break;
for (Node& e : adj[u]) {
int v = e.to; ll nd = d + e.w;
if (D[v] > nd) {
D[v] = nd;
pq.push({D[v], v});
}
}
}
cout << P << " " << D[n] << "\n";
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
#define TASK "SOTAN"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifndef ONLINE_JUDGE
cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmNvbnN0IGxsIG9vID0gMmUxODsKY29uc3QgaW50IE4gPSAyZTUrNTsKY29uc3QgaW50IE0gPSAzZTUrNTsKCnN0cnVjdCBFZGdlIHsKICAgIGludCB1LCB2OyBsbCBwLCB3OwogICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgRWRnZSYgYikgY29uc3QgewogICAgICAgIHJldHVybiBwIDwgYi5wOwogICAgfQp9IGVkZ2VzW01dOwoKc3RydWN0IE5vZGUgewogICAgaW50IHRvOyBsbCB3Owp9OwoKaW50IG4sIG07CmxsIERbTl07CnZlY3RvcjxOb2RlPiBhZGpbTl07CgppbnQgcFtOXSwgc3pbTl07CmludCBmaW5kKGludCB1KSB7CiAgICByZXR1cm4gKHBbdV0gPT0gdSkgPyB1IDogKHBbdV0gPSBmaW5kKHBbdV0pKTsKfQoKdm9pZCB1bml0ZShpbnQgdSwgaW50IHYpIHsKICAgIHUgPSBmaW5kKHUpLCB2ID0gZmluZCh2KTsKICAgIGlmICh1ID09IHYpIHJldHVybjsKICAgIGlmIChzelt1XSA8IHN6W3ZdKSBzd2FwKHUsIHYpOwogICAgcFt2XSA9IHU7CiAgICBzelt1XSArPSBzelt2XTsKfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykKICAgICAgICBjaW4gPj4gZWRnZXNbaV0udSA+PiBlZGdlc1tpXS52ID4+IGVkZ2VzW2ldLnAgPj4gZWRnZXNbaV0udzsKICAgIHNvcnQoZWRnZXMsIGVkZ2VzICsgbSk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgcFtpXSA9IGk7CiAgICAgICAgc3pbaV0gPSAxOwogICAgfQoKICAgIGxsIFAgPSAtMTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSAgewogICAgICAgIHVuaXRlKGVkZ2VzW2ldLnUsIGVkZ2VzW2ldLnYpOwogICAgICAgIGlmIChmaW5kKDEpID09IGZpbmQobikpIHsKICAgICAgICAgICAgUCA9IGVkZ2VzW2ldLnA7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykKICAgICAgICBpZiAoZWRnZXNbaV0ucCA8PSBQKSB7CiAgICAgICAgICAgIGFkaltlZGdlc1tpXS51XS5wdXNoX2JhY2soe2VkZ2VzW2ldLnYsIGVkZ2VzW2ldLnd9KTsKICAgICAgICAgICAgYWRqW2VkZ2VzW2ldLnZdLnB1c2hfYmFjayh7ZWRnZXNbaV0udSwgZWRnZXNbaV0ud30pOwogICAgICAgIH0gZWxzZSBicmVhazsKCiAgICBwcmlvcml0eV9xdWV1ZTxwYWlyPGxsLCBpbnQ+LCB2ZWN0b3I8cGFpcjxsbCwgaW50Pj4sIGdyZWF0ZXI8cGFpcjxsbCwgaW50Pj4+IHBxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBEW2ldID0gb287CgogICAgRFsxXSA9IDA7CiAgICBwcS5wdXNoKHswLCAxfSk7CgogICAgd2hpbGUgKCFwcS5lbXB0eSgpKSB7CiAgICAgICAgcGFpcjxsbCwgaW50PiB0ID0gcHEudG9wKCk7IHBxLnBvcCgpOwogICAgICAgIGxsIGQgPSB0LmZpcnN0OyBpbnQgdSA9IHQuc2Vjb25kOwogICAgICAgIGlmIChkID4gRFt1XSkgY29udGludWU7CiAgICAgICAgaWYgKHUgPT0gbikgYnJlYWs7CiAgICAgICAgZm9yIChOb2RlJiBlIDogYWRqW3VdKSB7CiAgICAgICAgICAgIGludCB2ID0gZS50bzsgbGwgbmQgPSBkICsgZS53OwogICAgICAgICAgICBpZiAoRFt2XSA+IG5kKSB7CiAgICAgICAgICAgICAgICBEW3ZdID0gbmQ7CiAgICAgICAgICAgICAgICBwcS5wdXNoKHtEW3ZdLCB2fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IFAgPDwgIiAiIDw8IERbbl0gPDwgIlxuIjsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsKCiAgICAjZGVmaW5lIFRBU0sgIlNPVEFOIgogICAgaWYgKGZvcGVuKFRBU0siLklOUCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKFRBU0siLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oVEFTSyIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGludCB0ZXN0cyA9IDE7IC8vIGNpbiA+PiB0ZXN0czsKICAgIHdoaWxlICh0ZXN0cy0tKSBzb2x2ZSgpOwoKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBjZXJyIDw8ICJcblRpbWUgZWxhcHNlZDogIiA8PCAxLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMgPDwgIiBzLlxuIjsKICAgICNlbmRpZgoKICAgIHJldHVybiAwOwp9