#include<cstdio>
#include<algorithm>
#define MAXN 99999999
using namespace std;
int dis[100],tu[100][100];//从z出发的dis值和邻接矩阵
int p,vis[100];//道路数目、节点标记
char r;
void di(int x,int y,int w)//存图
{
	
    if(tu[x][y]==0)//读入边
    
	{
		tu[x][y]=w;
		tu[y][x]=w;
        
	}
	if(w<tu[x][y])//读入的第二条边比第一条边的权值小,就替换
	{
		tu[x][y]=w; 
		tu[y][x]=w;
	}
} 
void dj()//迪杰斯特拉裸代码(好像是啊哈算法上面的??)
{

	int u,min;
    
	for(int i=1;i<=51;i++)
	{
		min=MAXN;
		for(int j=1;j<=51;j++)
		{
			if(vis[j]==0&&dis[j]<min)
			{
				min=dis[j];
				u=j;
			}
		}
		vis[u]=1;
		for(int v=1;v<=51;v++)
		{
			if(dis[v]>dis[u]+tu[u][v]&&vis[v]==0&&tu[u][v]<MAXN)
			dis[v]=dis[u]+tu[u][v];
		}
	}
}
int main()
{

	scanf("%d",&p);
    
	for(int i=1;i<=52;i++)
		for(int j=1;j<=51;j++)
			tu[i][j]=MAXN;
	vis[52]=1;//因为'Z'存图的时候是52,所以打上标记
	for(int i=1;i<=p;i++)//借鉴楼上的读入
	{
		char x,y;//两个点
		int c;//权值
		int xx,yy;
		scanf("\n%c %c %d",&x,&y,&c);
		if(x>='a'&&x<='z') xx=x-'a'+1;
		else xx=x-'A'+27;
		if(y>='a'&&y<='z') yy=y-'a'+1;
		else yy=y-'A'+27;
		di(xx,yy,c);
	}
	for(int i=1;i<=51;i++)
	dis[i]=tu[52][i];
	dj();int hh=MAXN,point;
	for(int i=1;i<=51;i++)//判断大写并输出
	{
		if(dis[i]<hh&&i>=27)
		{
			hh=dis[i];
			point =i;
		}
	}
	r=point-27+'A';
	printf("%c %d\n",r,hh);
} 
/**************************************************************
	Problem: 2091
	User: admin
	Language: C++
	Result: Accepted
	Time:47 ms
	Memory:1184 kb
****************************************************************/