#include<bits/stdc++.h>
using namespace std;
const int maxn=105;
const int inf=999999999;
int n;
int mp[maxn][maxn],vis[maxn],dis[maxn];
void init(){
for(int i=0;i<=100;i++)
for(int j=0;j<=100;j++)
mp[i][j]=inf;
for(int i=0;i<=100;i++){
dis[i]=inf;
mp[i][i]=0;
}
}
void dijkstra(int s){
vis[s]=1;
dis[s]=0;
for(int i=1;i<=100;i++)
dis[i]=min(dis[i],mp[s][i]);
for(int i=1;i<100;i++){
int k=0;
for(int j=1;j<=100;j++)
if(!vis[j]&&dis[j]<dis[k])
k=j;
vis[k]=1;
for(int j=1;j<=100;j++)
if(vis[j]&&dis[j]>dis[k]+mp[k][j])
dis[j]=dis[k]+mp[k][j];
}
}
int main(){
scanf("%d",&n);
init();
for(int i=1;i<=n;i++){
char s1[10],s2[10];
int w;
scanf("%s%s%d",s1,s2,&w);
int minn=min(mp[s1[0]-'A'+1][s2[0]-'A'+1],w);
minn=min(mp[s2[0]-'A'+1][s1[0]-'A'+1],minn);
mp[s1[0]-'A'+1][s2[0]-'A'+1]=mp[s2[0]-'A'+1][s1[0]-'A'+1]=minn;
}
dijkstra('Z'-'A'+1);
int ans,minn=inf;
for(int i='A'+1-'A';i<'Z'+1-'A';i++)
if(dis[i]<minn){
minn=dis[i];
ans=i;
}
printf("%c %d\n",ans+'A'-1,minn);
return 0;
}