#include <iostream>
#include <cstring>

using namespace std;

const int inf=999999;

int m[50][50];

int n;

void floyd(int n)
{
    for(int k=0;k<n;++k)
        for(int i=0;i<n;++i)
            for(int j=0;j<n;++j)
                if(i!=j && i!=k && j!=k)
                    if(m[i][k]+m[k][j]<m[i][j])
                        m[i][j]=m[i][k]+m[k][j];
}
int main()
{
    while(cin>>n)
    {
        if(n==0) break;
        for(int i=0;i<=45;i++)
        {
            for(int j=0;j<=45;j++)
            {
                m[i][j]=inf;
                if(i==j) m[i][j]=0;
            }
        }
        int a,b,w,maxn=0;
        for(int i=0;i<n;i++)
        {
            cin>>a>>b>>w;
            m[a][b]=w;
            m[b][a]=w;
            maxn=max(a,maxn);
            maxn=max(b,maxn);
        }
        maxn++;
        floyd(maxn);

        int ans=inf,ansn=0,temp=0;
        for(int i=0;i<=maxn;i++)
        {
            temp=0;
            for(int j=0;j<=maxn;j++)
            {
                if(m[i][j]!=inf) temp+=m[i][j];
            }
            if(temp<ans)
            {
                ans=temp;
                ansn=i;
            }
        }
		cout<<ansn<<' '<<ans<<endl;
    }
    return 0;
}

