67分紧急求助
//
// Created by 55062 on 2023/12/13.
//
//
// Created by 55062 on 2023/12/13.
//
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll m,k,dis[600],v[600],ans=0x3f3f3f3f,cnt=0;//dis数组表示每个点到Z点的距离
char x,y;
struct node{
ll v,u;
};
vector<node> adj[600];
struct D{
ll v,u;
bool operator<(const D &x)const{
return u>x.u;
}
};
priority_queue<D> q;
int main(){
cin>>m;
for(int i=1;i<=m;i++){
cin>>x>>y>>k;
ll xx,yy;
if(x>='a'&&x<='z') xx=x-'a'+26+1;
else xx=x-'A'+1;
if(y>='a'&&y<='z') yy=y-'a'+26+1;
else yy=y-'A'+1;
adj[yy].push_back({xx,k});
}for(int i=1;i<=52;i++) dis[i]=0x3f3f3f3f;
dis[26]=0;
q.push({26,0});
while(!q.empty()){
ll x=q.top().v,y=q.top().u;
q.pop();
if(v[x]==1) continue;
v[x]=1;
for(int i=0;i<adj[x].size();i++){
ll nx=adj[x][i].v,ny=adj[x][i].u;
if(v[nx]==0&&y+ny<dis[nx]){
dis[nx]=dis[x]+ny;
q.push({nx,dis[nx]});
}
}
}for(int i=1;i<=25;i++)
if(ans>dis[i]) {
ans = dis[i];
cnt = i;
}
char aa=(cnt-1)+'A';
cout<<aa<<" "<<ans;
return 0;
}