{$R+,I+,Q+,S+}
program saskes;
  const PR = 'LENTA.DAT';
        RE = 'LENTA.REZ';
        MAX_N = 60;      { Maksimalus lentos dydis }
  type saskes_tipas = (balta, juoda, pilka, nieko);
       Tlenta = array [1..MAX_N, 1..MAX_N] of saskes_tipas;

  { ‘emiau apražyti globalieji kintamieji }
  var lenta: Tlenta; { duotoji lenta }
      n: integer;    { jos dydis }

  function ieskoti (e1: integer): integer;
   { randa maksimal— nukirst— žažki— skai‡i— }
   { e1 - eilut‚, kurioje prad‘ioje stovi pilkoji žažk‚ }
   var e2, eil, stu: integer;
  begin
    e2 := e1;  { galin‚ eilut‚ }
    eil := e1; { nagrin‚jama eilut‚ }
    while eil < n - 1 do { kol dar galima kirsti }
      begin
        for stu := 1 to n do
          if (lenta[eil, stu] = pilka)
             then begin
                    { kertame Ť kairŠ }
                    if stu >= 3
                      then if  (lenta[eil+1, stu-1] = juoda) and
                               (lenta[eil+2, stu-2] = nieko)
                               then begin
                                      lenta[eil+2, stu-2] := pilka;
                                      e2 := eil + 2;
                                    end;
                    { kertame Ť dežinŠ }
                    if stu <= n - 2
                       then if (lenta[eil+1, stu+1] = juoda) and
                               (lenta[eil+2, stu+2] = nieko)
                               then begin
                                      lenta[eil+2, stu+2] := pilka;
                                      e2 := eil + 2;
                                    end;
                  end;
        eil := eil + 2;
      end;
    ieskoti := (e2 - e1) div 2;
  end;

  procedure duomenys (var n, e1: integer; var lenta: Tlenta);
   { Perskaitomi pradiniai duomenys }
   var f: text;
       x, y, kiek, i: integer;
       S: char;
  begin
    assign (f, PR); reset (f);
    readln (f, n);
    readln (f, kiek);
    for y := 1 to n do
      for x := 1 to n do
        lenta[y, x] := nieko;
    for i := 1 to kiek do
      begin
        readln (f, S, x, y);
        case S of
          'J': lenta[y, x] := juoda;
          'B': lenta[y, x] := balta;
          'P': begin
                 lenta[y, x] := pilka;
                 e1 := y; { Ťsimename eilutŠ, kurioje stovi pilkoji žažk‚ }
               end;
        end;
      end;
    close(f)
  end; { duomenys }

  procedure spausdinti (rez: integer);
    var f: text;
  begin
    assign (f, RE);
    rewrite (f);
    writeln (f, rez);
    close (f);
  end; { spausdinti }

  var rez, e1: integer;
begin
  duomenys (n, e1, lenta);
  rez := ieskoti (e1);
  spausdinti (rez);
end.

