{                    Sprendimo idëja                    

    Uþdaviná patogu spræsti nuo labirinto "apaèios". Pirmiausia
 pradësime nuo kryþkeliø prie kuriø "prikabinti" tik brangakmeniai.
 Tarkime turime toká labirinto fragmentà (þvaigþdutës - kryþkelës):

          |           |          |
                                 *
                        --------------------     
                        |        |         |
                        7        *         *
                              -------    -----
                              |  |  |    |   |
                              8  3  4    2   5

  Kadangi neþinome kieno tai ëjimas, kryþkelei atsiminsime 2
 skaièius - koká brangakmená bûtø paëmæs berniukas ir koká ðeimininkas.

          |           |          |
                                 *
                        --------------------     
                        |        |         |
                        7       Ð 3       Ð 2
                                B 8       B 5
                              -------    -----
                              |  |  |    |   |
                              8  3  4    2   5
  Dabar nagrinësime tas kryþkeles, prie kuriø prikabintos tik 
"ávertintos" kryþkelës ir brangakmeniai. Berniuko ëjimui ávertinti
imsime maksimumà ið þemesnio lygio ðeimininko "ávertinimø" ir 
brangakmeniø. Analogiðkai ðeimininkui - minimumas ið berniuko 
"ávertinimø" ir brangakmeniø.

          |           |          |
                                Ð 5
                                B 7
                        --------------------     
                        |        |         |
                        7       Ð 3       Ð 2
                                B 8       B 5
                              -------    -----
                              |  |  |    |   |
                              8  3  4    2   5

  Kartodami ðá þingsná uþlipsime iki virðaus (áëjimo). Ten
 turësime du skaièius - ávertinimà, jei pradëtø ðeimininkas ir
 ávertinimà, jei pradëtø berniukas. Paëmæ pastaràjá, turësime 
 atsakymà.

}

{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q+,R+,S+,T-,V+,X+,Y+}
{$M 64000,0,655360}

program labirintas;

  const N = 10000;   { Maksimalus kryþkeliø ir aklavieèiø skaièius } 
        bv = 'lobiai.dat';  { Duomenø byla }

  type irasas = record
                  tevas : integer;
                  S, B : integer;
                end;

  var lab : array[1..N] of irasas; {Labirintas}
      t : text;
      sk1, sk2, i : integer;
      x : irasas;

  function skaiciuoti : integer;

   var vaikai,  { Kiek i-oji kryþkelë turi ðakø ("vaikø") }
       tikr : array[1..N]of word; { Kurias kryþkeles tikrinti }
       kiek_tikr : word;

  procedure kryzkeles;
  { Perskaitoma informacija apie kryþkeles }
    var c : char;
        tv, v : integer;
  begin
    Assign(t, bv); Reset(t);
    FillChar(vaikai, SizeOf(vaikai), 0);
    readln(t, sk1, sk2);
    for i := 1 to sk1+sk2 do
      begin
        readln(t, c, tv, v);
        if c = 'K'
          then begin
                 lab[v].tevas := tv;  { Ásimename "tëvà" }
                 lab[v].B := 0; { Kol kas reikðmiø neþinome }
                 lab[v].S := 0; 
                 if tv <> 0 
                   then inc(vaikai[tv]) { Priskaièiuojame "vaikà" }
               end
          else if tv <> 0 
                 then inc(vaikai[tv]) { Aklavietë irgi "vaikas"}
      end;
    Close(t)
  end;

  procedure brangakmeniai;
  { Perskaitoma informacija apie brangakmenius }
    var c : char;
        tv, v : integer;
  begin
    Assign(t, bv); Reset(t);
    kiek_tikr := 0;
    readln(t, sk1, sk2);
    for i := 1 to sk1+sk2 do
      begin
        readln(t, c, tv, v);
        if c = 'A'
          then begin
                 dec(vaikai[tv]);
                 if vaikai[tv] = 0  { Jei visos ðakos - "aklavietës", }
                   then begin  { tai átraukiame ðià kryþkelæ á sàraðà,}
                          inc(kiek_tikr); {kad galima naudoti jos}
                          tikr[kiek_tikr]:=tv {"informacijà" }
                        end;  { aukðtesniame lygyje }
                 { Ávertiname... }
                 if (lab[tv].B = 0)or(lab[tv].B<v) then lab[tv].B := v;
                 if (lab[tv].S = 0)or(lab[tv].S>v) then lab[tv].S := v
               end
      end;
    Close(t)
  end;

  procedure lipti;
  { Keliausime medþiu aukðtyn, iki áëjimo } 
    var i : integer;
        nauj_tikr : word;
  begin
    while lab[tikr[1]].tevas<>0 do
      begin
        nauj_tikr := 0;
        for i := 1 to kiek_tikr do { Tikriname reikiamas kryþkeles }
          begin 
            { Ávertiname berniuko ëjimà }      
            if (lab[lab[tikr[i]].tevas].B = 0)or
               (lab[lab[tikr[i]].tevas].B < lab[tikr[i]].S)
               then lab[lab[tikr[i]].tevas].B := lab[tikr[i]].S;
            { Ávertiname ðeimininko ëjimà }      
            if (lab[lab[tikr[i]].tevas].S = 0)or
               (lab[lab[tikr[i]].tevas].S > lab[tikr[i]].B)
               then lab[lab[tikr[i]].tevas].S := lab[tikr[i]].B;
            dec(vaikai[lab[tikr[i]].tevas]);
            if vaikai[lab[tikr[i]].tevas] = 0 { Naudosime "tëvà" tik}
              then begin { tada, kai bus patikrinti visi jo "vaikai" }
                     inc(nauj_tikr);
                     tikr[nauj_tikr]:=lab[tikr[i]].tevas
                   end
          end;
        kiek_tikr := nauj_tikr;
      end
  end;

  begin
    kryzkeles;
    brangakmeniai;
    lipti;
    skaiciuoti := lab[tikr[1]].B
  end;

begin
  writeln(skaiciuoti);
end.