#include <bits/stdc++.h>
using namespace std;
int par[105];
int ran[105];
struct edge
{
    int from;
    int to;
    int cost;
    int ind;
};
bool cmp(edge a, edge b)
{
    return a.cost<b.cost;
}
void ini(int n)
{
    for (int i = 0; i<n; ++i)
    {
        par[i] = i;
        ran[i] =0;
    }
}
int find_set(int i)
{
    if (i==par[i])return i;
    return par[i] = find_set(par[i]);
}
int join(int i, int j)
{
    i = find_set(i);
    j = find_set(j);
    if (i!=j)
    {
        if (ran[i]>ran[j])
        {
            ran[i]+=ran[j];
            par[j] = i;
        }
        else
        {
            ran[j]+=ran[i];
            par[i] = j;
        }
        return 1;
    }
    return 0;
}
int main()
{
    int t;
    cin>>t;
    while (t--)
    {
        int n,m;
        cin>>n>>m;
        ini(n);
        vector<edge> v;
        for (int i = 0; i<m; ++i)
        {
            int a,b,c;
            a--;
            b--;
            cin>>a>>b>>c;
            v.push_back({a,b,c,i});
        }
        sort(v.begin(),v.end(),cmp);
        vector<int> ans;
        int cnt = 0;
        int k = 0;
        int c = 0;
        vector<edge> touse;
        int fmin = INT_MAX;
        for (int i = 0; i<v.size(); ++i)
        {
            if (join(v[i].from,v[i].to))
            {
                touse.push_back(v[i]);
                cnt+=v[i].cost;
                c++;
            }
        }
        if (c==n-1)fmin=cnt;
        ini(n);
        cnt= 0;
        c = 0;
        int smin = INT_MAX;
        for (int i = 0; i<touse.size(); ++i)
        {
            k = touse[i].ind;
            for (int j = 0; j<v.size(); ++j)
            {
                if (v[j].ind==k)continue;
                if (join(v[j].from,v[j].to))
                {
                    cnt+=v[j].cost;
                    c++;
                }
            }
            if (c!=n-1)cnt = INT_MAX;
            if (cnt<smin)
            {
                smin = cnt;
            }
            ini(n);
            cnt= 0;
            c = 0;
        }
        cout<<fmin<<" "<<smin<<endl;
        cout<<endl;
    }
}
