//{Headers
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<string>
#include<algorithm>
#include<list>
#include<queue>
#include<deque>
#include<vector>
#include<stack>
#include<map>
#include<set>
#include<bitset>

using namespace std;
typedef vector< int > vi;
typedef vector< vi > vvi;
typedef pair< int,int > pii;
#define mp(x,y) make_pair(x,y)
typedef long long ll;
//}

const int MAXN=10,INF=0x3f3f3f3f;
int N,M,g[MAXN][MAXN];

void init(){
    memset(g,INF,sizeof g);
    for(int i=0;i<MAXN;i++) g[i][i]=0;
}

void solve(){
    for(int k=0;k<N;k++) for(int i=0;i<N;i++) for(int j=0;j<N;j++)
        g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
    int ans=-1,ansT=INF;
    for(int i=0;i<N;i++){
        int sum=0;
        for(int j=0;j<N;j++) sum+=g[i][j];
        if(sum<ansT){
            ans=i;
            ansT=sum;
        }
    }
    printf("%d %d\n",ans,ansT);
}

int main(void){
//    freopen("in.txt","r",stdin);
    int a,b,c;
    while(~scanf("%d",&M) && M!=0){
        init();
        N=1;
        for(int i=0;i<M;i++){
            scanf("%d%d%d",&a,&b,&c);
            N=max(N,1+max(a,b));
            g[a][b]=g[b][a]=c;
        }
        solve();
    }
    return 0;
}

/*
Sample Input
6
0 1 80
1 2 20
0 2 60
2 3 50
3 4 60
1 4 90
2
0 1 1
1 2 1
0
Output for the Sample Input
2 240
1 2
*/

