#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e3 + 10;
struct Edge {
int a, b;
long long c;
bool isVisited;
Edge(): isVisited(0) {
}
bool operator<(const Edge& e) const {
return c < e.c;
}
} edges[MAX * MAX];
int n, m, parent[MAX];
long long dp[MAX][MAX];
vector<int>G[MAX];
int find(int x) {
return x == parent[x] ? x : (parent[x] = find(parent[x]));
}
int main() {
cin >> n >> m;
for(int i=0; i<m; i++) {
cin >> edges[i].a >> edges[i].b >> edges[i].c;
}
sort(edges, edges+m);
for(int i=1; i<=n; i++) {
G[i].clear();
G[i].push_back(i);
parent[i] = i;
}
long long sum = 0;
int current = 0;
for(int i=0; i<m; i++) {
if (current == n-1) break;
int a = find(edges[i].a), b = find(edges[i].b);
if (a == b) continue;
current++;
edges[i].isVisited = true;
sum += edges[i].c;
for(int j: G[a]) {
for(int k: G[b]) {
dp[i][j] = dp[b][a] = edges[i].c;
}
}
parent[a] = b;
for(int j: G[a]) {
G[b].push_back(j);
}
}
if (current != n-1) {
cout << "-1 -1\n";
return 0;
}
long long ans = LLONG_MAX;
for(int i=0; i<m; i++) {
if (!edges[i].isVisited) {
ans = min(ans, sum + edges[i].c - dp[edges[i].a][edges[i].b]);
}
}
if (ans > sum && ans != LLONG_MAX) {
cout << sum << " " << ans << endl;
} else {
cout << sum << " " << -1 << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNQVggPSAxZTMgKyAxMDsKc3RydWN0IEVkZ2UgewoJaW50IGEsIGI7Cglsb25nIGxvbmcgYzsKCWJvb2wgaXNWaXNpdGVkOwoJRWRnZSgpOiBpc1Zpc2l0ZWQoMCkgewoJfQoJYm9vbCBvcGVyYXRvcjwoY29uc3QgRWRnZSYgZSkgY29uc3QgewoJCXJldHVybiBjIDwgZS5jOwoJfQp9IGVkZ2VzW01BWCAqIE1BWF07CmludCBuLCBtLCBwYXJlbnRbTUFYXTsKbG9uZyBsb25nIGRwW01BWF1bTUFYXTsKdmVjdG9yPGludD5HW01BWF07CmludCBmaW5kKGludCB4KSB7CglyZXR1cm4geCA9PSBwYXJlbnRbeF0gPyB4IDogKHBhcmVudFt4XSA9IGZpbmQocGFyZW50W3hdKSk7Cn0KaW50IG1haW4oKSB7CgljaW4gPj4gbiA+PiBtOwoJZm9yKGludCBpPTA7IGk8bTsgaSsrKSB7CgkJY2luID4+IGVkZ2VzW2ldLmEgPj4gZWRnZXNbaV0uYiA+PiBlZGdlc1tpXS5jOwoJfQoJc29ydChlZGdlcywgZWRnZXMrbSk7Cglmb3IoaW50IGk9MTsgaTw9bjsgaSsrKSB7CgkJR1tpXS5jbGVhcigpOwoJCUdbaV0ucHVzaF9iYWNrKGkpOwoJCXBhcmVudFtpXSA9IGk7Cgl9Cglsb25nIGxvbmcgc3VtID0gMDsKCWludCBjdXJyZW50ID0gMDsKCWZvcihpbnQgaT0wOyBpPG07IGkrKykgewoJCWlmIChjdXJyZW50ID09IG4tMSkgYnJlYWs7CgkJaW50IGEgPSBmaW5kKGVkZ2VzW2ldLmEpLCBiID0gZmluZChlZGdlc1tpXS5iKTsKCQlpZiAoYSA9PSBiKSBjb250aW51ZTsKCQljdXJyZW50Kys7CgkJZWRnZXNbaV0uaXNWaXNpdGVkID0gdHJ1ZTsKCQlzdW0gKz0gZWRnZXNbaV0uYzsKCQlmb3IoaW50IGo6IEdbYV0pIHsKCQkJZm9yKGludCBrOiBHW2JdKSB7CgkJCQlkcFtpXVtqXSA9IGRwW2JdW2FdID0gZWRnZXNbaV0uYzsKCQkJfQoJCX0KCQlwYXJlbnRbYV0gPSBiOwoJCWZvcihpbnQgajogR1thXSkgewoJCQlHW2JdLnB1c2hfYmFjayhqKTsKCQl9Cgl9CglpZiAoY3VycmVudCAhPSBuLTEpIHsKCQljb3V0IDw8ICItMSAtMVxuIjsKCQlyZXR1cm4gMDsKCX0KCWxvbmcgbG9uZyBhbnMgPSBMTE9OR19NQVg7Cglmb3IoaW50IGk9MDsgaTxtOyBpKyspIHsKCQlpZiAoIWVkZ2VzW2ldLmlzVmlzaXRlZCkgewoJCQlhbnMgPSBtaW4oYW5zLCBzdW0gKyBlZGdlc1tpXS5jIC0gZHBbZWRnZXNbaV0uYV1bZWRnZXNbaV0uYl0pOwoJCX0KCX0KCWlmIChhbnMgPiBzdW0gJiYgYW5zICE9IExMT05HX01BWCkgewoJCWNvdXQgPDwgc3VtIDw8ICIgIiA8PCBhbnMgPDwgZW5kbDsKCX0gZWxzZSB7CgkJY291dCA8PCBzdW0gPDwgIiAiIDw8IC0xIDw8IGVuZGw7Cgl9Cn0=