#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
#define lgn 20
#define pb emplace_back
#define mem(x,y) memset(x,y,sizeof x)
typedef long long ll;
#define io ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
ll n,m,total;
struct Edge{
ll from,to,w;
};
struct edge{
ll to,w;
};
struct djs{
ll f[maxn];
void init(){for(ll i=1;i<=n;i++)f[i]=i;}
ll find(ll x){return x==f[x]?x:f[x]=find(f[x]);}
bool same(ll x,ll y){return find(x)==find(y);}
void Union(ll x,ll y){f[find(x)]=find(y);}
};
vector<Edge> mst;
vector<Edge> non;
vector<edge> adj[maxn];
ll d[maxn];
ll pa[lgn+1][maxn];
ll mx[lgn+1][maxn];
bool operator<(const Edge &a,const Edge &b){
return a.w<b.w;
}
void kruskal(){
djs ds;ds.init();
for(ll i=0;i<m;i++){
if(!ds.same(mst[i].from,mst[i].to)){
total+=mst[i].w;
ds.Union(mst[i].from,mst[i].to);
adj[mst[i].from].pb(edge{mst[i].to,mst[i].w});
adj[mst[i].to].pb(edge{mst[i].from,mst[i].w});
}
else non.pb(mst[i]);
}
}
void dfs(ll index,ll fa,ll dis){
d[index]=dis;
pa[0][index]=fa;
for(auto i:adj[index]){
if(i.to==fa)continue;
mx[0][i.to]=i.w;
dfs(i.to,index,dis+1);
}
}
void build(){
for(ll i=1;i<=lgn;i++){
for(ll j=1;j<=n;j++){
pa[i][j]=pa[i-1][pa[i-1][j]];
mx[i][j]=max(mx[i-1][j],mx[i-1][mx[i-1][j]]);
}
}
}
ll LCA(ll u,ll v){
ll maxium=0;
if(d[u]<d[v])swap(u,v);
ll s=d[u]-d[v];
for(ll i=lgn;i>=0;i--){
if((s>>i)&1){
maxium=max(maxium,mx[i][u]);
u=pa[i][u];
}
}
if(u==v)return maxium;
for(ll i=lgn;i>=0;i--){
if(pa[i][u]!=pa[i][v]){
maxium=max({maxium,mx[i][u],mx[i][v]});
u=pa[i][u];
v=pa[i][v];
}
}
maxium=max({maxium,mx[0][u],mx[0][n]});
return maxium;
}
int main(){
io;
while(cin>>n>>m){
//init(mem)
mst.clear();
non.clear();
for(ll i=0;i<n;i++)adj[i].clear();
total=0;
mem(d,-1);
mem(mx,0);
mem(pa,-1);
for(ll i=0;i<m;i++){
ll a,b,c;
cin>>a>>b>>c;
mst.pb(Edge{a,b,c});
}
sort(mst.begin(),mst.end());
kruskal();
dfs(1,0,0);
build();
ll ans=LONG_LONG_MAX;
for(ll i=0;i<ll(non.size());i++){
ll lca=LCA(non[i].from,non[i].to);
ans=min(ans,total-lca+non[i].w);
}
cout<<total<<' '<<ans<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBtYXhuIDEwMDAwNQojZGVmaW5lIGxnbiAyMAojZGVmaW5lIHBiIGVtcGxhY2VfYmFjawojZGVmaW5lIG1lbSh4LHkpIG1lbXNldCh4LHksc2l6ZW9mIHgpCnR5cGVkZWYgbG9uZyBsb25nIGxsOwojZGVmaW5lIGlvIGlvczo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CmxsIG4sbSx0b3RhbDsKc3RydWN0IEVkZ2V7CglsbCBmcm9tLHRvLHc7Cn07CnN0cnVjdCBlZGdlewoJbGwgdG8sdzsKfTsKc3RydWN0IGRqc3sKCWxsIGZbbWF4bl07Cgl2b2lkIGluaXQoKXtmb3IobGwgaT0xO2k8PW47aSsrKWZbaV09aTt9CglsbCBmaW5kKGxsIHgpe3JldHVybiB4PT1mW3hdP3g6Zlt4XT1maW5kKGZbeF0pO30KCWJvb2wgc2FtZShsbCB4LGxsIHkpe3JldHVybiBmaW5kKHgpPT1maW5kKHkpO30KCXZvaWQgVW5pb24obGwgeCxsbCB5KXtmW2ZpbmQoeCldPWZpbmQoeSk7fQp9Owp2ZWN0b3I8RWRnZT4gbXN0Owp2ZWN0b3I8RWRnZT4gbm9uOwp2ZWN0b3I8ZWRnZT4gYWRqW21heG5dOwpsbCBkW21heG5dOwpsbCBwYVtsZ24rMV1bbWF4bl07CmxsIG14W2xnbisxXVttYXhuXTsKYm9vbCBvcGVyYXRvcjwoY29uc3QgRWRnZSAmYSxjb25zdCBFZGdlICZiKXsKCXJldHVybiBhLnc8Yi53Owp9CnZvaWQga3J1c2thbCgpewoJZGpzIGRzO2RzLmluaXQoKTsKCWZvcihsbCBpPTA7aTxtO2krKyl7CgkJaWYoIWRzLnNhbWUobXN0W2ldLmZyb20sbXN0W2ldLnRvKSl7CgkJCXRvdGFsKz1tc3RbaV0udzsKCQkJZHMuVW5pb24obXN0W2ldLmZyb20sbXN0W2ldLnRvKTsKCQkJYWRqW21zdFtpXS5mcm9tXS5wYihlZGdle21zdFtpXS50byxtc3RbaV0ud30pOwoJCQlhZGpbbXN0W2ldLnRvXS5wYihlZGdle21zdFtpXS5mcm9tLG1zdFtpXS53fSk7CgkJfQoJCWVsc2Ugbm9uLnBiKG1zdFtpXSk7Cgl9Cn0Kdm9pZCBkZnMobGwgaW5kZXgsbGwgZmEsbGwgZGlzKXsKCWRbaW5kZXhdPWRpczsKCXBhWzBdW2luZGV4XT1mYTsKCWZvcihhdXRvIGk6YWRqW2luZGV4XSl7CgkJaWYoaS50bz09ZmEpY29udGludWU7CgkJbXhbMF1baS50b109aS53OwoJCWRmcyhpLnRvLGluZGV4LGRpcysxKTsKCX0KfQp2b2lkIGJ1aWxkKCl7Cglmb3IobGwgaT0xO2k8PWxnbjtpKyspewoJCWZvcihsbCBqPTE7ajw9bjtqKyspewoJCQlwYVtpXVtqXT1wYVtpLTFdW3BhW2ktMV1bal1dOwoJCQlteFtpXVtqXT1tYXgobXhbaS0xXVtqXSxteFtpLTFdW214W2ktMV1bal1dKTsKCQl9Cgl9Cn0KbGwgTENBKGxsIHUsbGwgdil7CglsbCBtYXhpdW09MDsKCWlmKGRbdV08ZFt2XSlzd2FwKHUsdik7CglsbCBzPWRbdV0tZFt2XTsKCWZvcihsbCBpPWxnbjtpPj0wO2ktLSl7CgkJaWYoKHM+PmkpJjEpewoJCQltYXhpdW09bWF4KG1heGl1bSxteFtpXVt1XSk7CgkJCXU9cGFbaV1bdV07CgkJfQoJfQoJaWYodT09dilyZXR1cm4gbWF4aXVtOwoJZm9yKGxsIGk9bGduO2k+PTA7aS0tKXsKCQlpZihwYVtpXVt1XSE9cGFbaV1bdl0pewoJCQltYXhpdW09bWF4KHttYXhpdW0sbXhbaV1bdV0sbXhbaV1bdl19KTsKCQkJdT1wYVtpXVt1XTsKCQkJdj1wYVtpXVt2XTsKCQl9Cgl9CgltYXhpdW09bWF4KHttYXhpdW0sbXhbMF1bdV0sbXhbMF1bbl19KTsKCXJldHVybiBtYXhpdW07Cn0KaW50IG1haW4oKXsKCWlvOwoJd2hpbGUoY2luPj5uPj5tKXsKCQkvL2luaXQobWVtKQoJCW1zdC5jbGVhcigpOwoJCW5vbi5jbGVhcigpOwoJCWZvcihsbCBpPTA7aTxuO2krKylhZGpbaV0uY2xlYXIoKTsKCQl0b3RhbD0wOwoJCW1lbShkLC0xKTsKCQltZW0obXgsMCk7CgkJbWVtKHBhLC0xKTsKCgkJZm9yKGxsIGk9MDtpPG07aSsrKXsKCQkJbGwgYSxiLGM7CgkJCWNpbj4+YT4+Yj4+YzsKCQkJbXN0LnBiKEVkZ2V7YSxiLGN9KTsKCQl9CgkJc29ydChtc3QuYmVnaW4oKSxtc3QuZW5kKCkpOwoJCWtydXNrYWwoKTsKCQlkZnMoMSwwLDApOwoJCWJ1aWxkKCk7CgkJbGwgYW5zPUxPTkdfTE9OR19NQVg7CgkJZm9yKGxsIGk9MDtpPGxsKG5vbi5zaXplKCkpO2krKyl7CgkJCWxsIGxjYT1MQ0Eobm9uW2ldLmZyb20sbm9uW2ldLnRvKTsKCQkJYW5zPW1pbihhbnMsdG90YWwtbGNhK25vbltpXS53KTsKCQl9CgkJY291dDw8dG90YWw8PCcgJzw8YW5zPDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=