module Main where

import           Control.Monad
import           Control.Monad.State
import           Data.Array.IO
import           Data.List
import           Data.List.Split
import           Data.Ord
import qualified Data.Vector.Unboxed as V
import           Text.Printf

main :: IO ()
main = do
  n <- readLn
  ss <- replicateM n getLine :: IO [String]
  let cs = (sum . map count) ss
      both = (length . filter (\x -> head x == 'B' && last x == 'A')) ss
      as = (length . filter ((==) 'A' . last)) ss - both
      bs = (length . filter ((==) 'B' . head)) ss - both
  print $ cs + ans both as bs
  where
    count (a:b:xs)
      | a == 'A' && b == 'B' = 1 + count xs
      | b == 'A' = count (b:xs)
      | otherwise = count xs
    count _ = 0

    ans both as bs
      | as == 0 && bs == 0 = both
      | bs == 0 = both
      | as == 0 = both
      | otherwise = both + min as bs

