{-# LANGUAGE ViewPatterns, OverloadedStrings #-}
import Control.Arrow
import Control.Monad
import Data.List
import qualified Data.ByteString.Char8 as B

main :: IO ()
main = readLn >>= flip replicateM B.getLine >>= print . solve

solve :: [B.ByteString] -> Int
solve ss = n + min an bn
    where
        n = sum $ map (count 0) ss

        count acc s@(B.uncons -> Just (_, xs))
            |  "AB" `B.isPrefixOf` s = count (acc + 1) $ B.tail xs
            | otherwise = count acc xs
        count acc _ = acc

        bn = length $ filter (\s -> B.head s == 'B') ss
        an = length $ filter (\s -> B.last s == 'A') ss

readLine :: IO [Int]
readLine = unfoldr (fmap (second (maybe B.empty snd . B.uncons)) . B.readInt) <$> B.getLine

readContents :: Int -> IO [[Int]]
readContents = flip replicateM readLine