








var
  pocet : integer;
  kody : array[1..200] of string[3];
  transakce : array[1..200, 1..200] of real; 
  dostupnost : array[1..200, 1..200] of real;
  i, j, k : integer;
  kod1, kod2 : string[3];
  transakci : longint;
  pomer : string;
  radek : string;
  zmena, konec : boolean;
  nova : real;

  

function cisloMeny(kod : string) : integer;
var
  i : integer;
begin
  i := 1;
  while kody[i] <> kod do begin
    inc(i);
  end;

  cisloMeny := i;


end;


function prevedPomer(pomer : string) : real;
var
  i, err : integer;
  c1, c2 : integer;
  pom : real;
begin
  i := pos(':', pomer);
  val(copy(pomer, 1, i - 1), c1, err);
  val(copy(pomer, i + 1, length(pomer) - i), c2, err);

 

  pom := c1/c2;
  {writeln(pom);}

  prevedPomer := pom;
  



end;



begin





readln(pocet);


while pocet <> 0 do begin
  konec := false;
  for i := 1 to 200 do begin
     for j := 1 to 200 do begin
       transakce[i, j] := 0; 
       dostupnost[i, j] := 0;
     end;
  end; 





  readln(radek);
  for i := 1 to pocet do begin
    kod1 := copy(radek, 1, 3);
    delete(radek, 1, 4);
    
    kody[i] := kod1;    
    {writeln(kod1);}
  end;  
  


  readln(transakci);
  for i := 1 to transakci do begin
    readln(radek);
    kod1 := copy(radek, 1, 3);
    kod2 := copy(radek, 5, 3);
    pomer := copy(radek, 9, length(radek) - 8);  
  
    transakce[cisloMeny(kod1), cisloMeny(kod2)] := prevedPomer(pomer);

  end;



  for i := 1 to pocet do begin
    for j := 1 to pocet do begin
      if transakce[i, j] <> 0 then begin
        dostupnost[i, j] := transakce[i, j];
      end;
    end;
  end;

  zmena := true;
  while (zmena) and not(konec) do begin
    zmena := false;
    for k := 1 to pocet do begin
      if dostupnost[k, k] <> 0 then begin
        if dostupnost[k, k]  < 1 then begin
          writeln('Arbitrage');
          konec := true;
          break;
        end;
        

      end;
      for i := 1 to pocet do begin
        if dostupnost[k, i] <> 0 then begin
          for j := 1 to pocet do begin
            if dostupnost[i, j] <> 0 then begin
              nova := dostupnost[k, i] * dostupnost[i, j];
              if (dostupnost[k, j] = 0) or (nova < dostupnost[k, j]) then begin
                dostupnost[k, j] := nova; 
                zmena := true;
              end;
            end;
          end;
        end;
      end;   
    end;
  end;

  for i := 1 to pocet do begin
    for j := 1 to pocet do begin
     { write(dostupnost[i, j]:3:3, ' ');} 
    end;
    {writeln;}
  end;

  if not konec then begin
    writeln('Ok');
  end;

  readln(pocet);

end;










end.