Const
  InputFile  = 'DATA5.txt';
  OutputFile = 'OUT5.txt';
  MaxN = 20;
  Finish = 'SEA';
  Start  = 'YYZ';
Type
  Arr1Str = array[0..MaxN] of String[3];
Var
  test, n, Top, Res : LongInt;
  F, T, Stack : Arr1Str;
  Cost, d : array[1..20] of LongInt;

  Function Key(S : String): Integer;
  Begin
    key := Pos(' ', S);
  End;

  Procedure Enter_and_Init;
  Var
    i, code : Integer;
    S : String;
  Begin
    Readln(n);
    For i := 1 to n do
      Begin
        Readln(S);
        F[i] := Copy(S, 1, key(S) - 1);
        Delete(S, 1, key(S));
        T[i] := Copy(S, 1, key(S) - 1);
        Delete(S, 1, key(S));
        Val(S, Cost[i], code);
      End;
    Res := 2000000000; Top := 0;
  End;

  Procedure Push(S : String);
  Begin
    Inc(Top); Stack[Top] := S;
  End;

  Function OK(S : String) : Boolean;
  Var
    i : LongInt;
  Begin
    For i := 1 to Top do
      If S = Stack[i] then Exit(False);
    OK := True;
  End;

  Procedure DFS(S : String; Sum : LongInt);
  Var
    i : LongInt;
  Begin
    If S = Finish then
      Begin
        If Sum < Res then Res := Sum;
        Exit;
      End;
    Push(S);
    For i := 1 to n do
      If S = F[i] then
        If OK(T[i]) then DFS(T[i], Sum + Cost[i]);
  End;

Begin
  Assign(Input, InputFile); Reset(Input);
  Assign(Output, OutputFile); Rewrite(Output);
  test := 0;
  While test < 5 do
    Begin
      Inc(test);
      Enter_and_Init;
      DFS(Start, 0);
      Writeln(Res);
    End;
  Close(Input); Close(Output);
End.

