#include<stdio.h>
#include<vector>
#include<algorithm>
#define MAX 10005
#define inf 1000000
using namespace std;
int N,M,n,m;
int d[105],cost[105][105],pre[105];
bool used[105];
vector<int>a;
void dijkstra(int s)
{
	for(int i=0;i<=m;i++)
	{
		d[i]=inf;
		used[i]=false;
	}
	d[s]=0;
	while(true)
	{
		int v=-1;
		for(int u=0;u<=m;u++)
		{
			if(!used[u]&&(v==-1||d[u]<d[v]))
			v=u;
		}
		if(v==-1)
		break;
		used[v]=true;
		for(int u=0;u<=m;u++)	
		{
			if(d[u]>d[v]+cost[v][u])
			d[u]=d[v]+cost[v][u];
		}
	}
	return ;
}
int main(void)
{
	int s,e,t;
	while(scanf("%d",&n)==1)
	{
		if(n==0)
		break;
		for(int i=0;i<=n;i++)
        {
        	for(int j=0;j<=i;j++)
        	{
        		if(i==j)
        		cost[i][j]=0;
        		else
        		cost[i][j]=cost[j][i]=inf;
			}
        }
		for(int i=0;i<n;i++)
		{
			scanf("%d%d%d",&s,&e,&t);
			m=max(s,e);
			cost[e][s]=cost[s][e]=t;
		}
		int id=0;
		int ans=inf;
		for(int i=0;i<=m;i++)
		{
			int sum=0;
			dijkstra(i);
			for(int j=0;j<=m;j++)
			sum+=d[j];
			if(sum<ans)
			{
				ans=sum;
				id=i;
			}
		}
		printf("%d %d\n",id,ans);
	}
	return 0;
}