// 2016/06/16 AOJ0200:「Convenient Location」 Sae.I
#include <iostream>
using namespace std;

const int INF = 1000000000;

int main()
{
	while(true){
		int n;		//道の数
		cin >> n;

		if(n==0)	//nが0なら
			break;

		int T[10][10];	//道の情報初期化
		for(int i=0; i<10; i++){
			for(int j=0; j<10; j++){
				if(i==j){
					T[i][j] = 0;	//同じ町から町へは0
				}
				else{
					T[i][j] = INF;
				}
			}
		}

		int m = 0;	//町の総数

		for(int i=0; i<n; i++){
			int a, b, c;
			cin >> a >> b >> c;

			T[a][b] = T[b][a] = c;	//a町からb町、b町からa町までの時間

			if(a+1>m){	
				m = a+1;
			}
			if(b+1>m){		
				m = b+1;
			}
		}

		//ワーシャルフロイド法
		int time[1000][1000];		//最短時間
		for(int i=0;i<m;i++){		//重み配列で初期化
			for(int j=0;j<m;j++){
				time[i][j]=T[i][j];
			}
		}
		for(int k=0;k<m;k++){
			for(int i=0;i<m;i++){
				for(int j=0;j<m;j++){
					if(time[i][j]>time[i][k]+time[k][j]){	//時間
						time[i][j] = time[i][k]+time[k][j];
					}
				}
			}
		}

		int machi=0;
		int Time=0;
		int time2[1000];
		for(int i=0;i<m;i++){
			time2[i]=0;
		}
	
		for(int i=0;i<m;i++){
			time2[i]=0;
			for(int j=0;j<m;j++){
				time2[i]= time2[i]+time[i][j];
			}

			if(i!=0){
				if(time2[i]<time2[i-1]){
					Time=time2[i];
					machi=i;
				}
			}
			else{
				Time=time2[i];
				machi=i;
			}
		}


		cout << machi << " " << Time << '\n';


	}

	return 0;
}