#include <bits/stdc++.h> #define M 100005 using namespace std; int n,k,m,dis[M],i,ww,vis[M],dis2[M],num=0x3f,vis2[M],arr[100][100],xx,yy,vis3[M],nn; char x,y,ll; struct cmp{ bool operator ()(const int &a,int &b)const { return dis[a]>dis[b]; } }; priority_queue <int,vector<int>,cmp> mqy; void djj (int a) { memset(dis,0x3f,sizeof(dis)); memset(vis,0,sizeof(vis)); vis[a]=1; dis[a]=0; for(i=0;i<nn;i++) { for(int j=0;j<=57;j++) { if(arr[a][j]!=0&&dis[j]>arr[a][j]+dis[a]) { dis[j]=dis[a]+arr[a][j];mqy.push(j); } } while(!mqy.empty()&&vis[mqy.top()]==1) mqy.pop(); a=mqy.top();vis[a]=1;mqy.pop(); } } int main(){ scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%c%c%d",&x,&y,&ww); xx='z'-x;yy='z'-y; if(xx>=32&&xx<=57) vis2[xx]=1; if(yy>=32&&yy<=57) vis2[yy]=1; if(vis3[xx]==0) nn++; if(arr[xx][yy]>ww||arr[xx][yy]==0) arr[xx][yy]=ww; } djj(32); for(i=33;i<=57;i++) { if(num>dis[i]) { num=dis[i];ll='z'-32; } } cout<<ll<<" "<<num; }