Problem:
Score : 400 points

Problem Statement

Snuke has N strings. The i-th string is s_i.

Let us concatenate these strings into one string after arranging them in some order.
Find the maximum possible number of occurrences of AB in the resulting string.

Constraints

1 \leq N \leq 10^{4}

2 \leq |s_i| \leq 10

s_i consists of uppercase English letters.

Input

Input is given from Standard Input in the following format:

N
s_1
\vdots
s_N

Output

Print the answer.

Sample Input 1

3
ABCA
XBAZ
BAD

Sample Output 1

2

For example, if we concatenate ABCA, BAD and XBAZ in this order, the resulting string ABCABADXBAZ has two occurrences of AB.

Sample Input 2

9
BEWPVCRWH
ZZNQYIJX
BAVREA
PA
HJMYITEOX
BCJHMRMNK
BP
QVFABZ
PRGKSPUNA

Sample Output 2

4

Sample Input 3

7
RABYBBE
JOZ
BMHQUVA
BPA
ISU
MCMABAOBHZ
SZMEHMA

Sample Output 3

4

Solution in C# (Mono 4.6.2.0) (judge verdict: Wrong Answer)

using System;

namespace ConsoleApp22
{
    class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());

            int Leng;

            int ab = 0;
            int Na = 0;
            int Nb = 0;
            int Nab = 0;

            string a;
            string b;

            string Checker;
            var S = new string[N];

            int Ans = 0;

            for (int i = 0; i < N; i++)
            {
                S[i] = Console.ReadLine();
                Leng = S[i].Length;

                for (int j = 0; j < Leng - 3; j++)
                {
                    Checker = S[i].Substring(j, 2);

                    if (Checker == "AB")
                    {
                        ab++;
                    }

                }

                b = S[i].Substring(0, 1);
                a = S[i].Substring(Leng - 1, 1);

                if (a == "A" && b == "B")
                {
                    Nab++;
                }
                else if (a == "A")
                {
                    Na++;
                }
                else if (b == "B")
                {
                    Nb++;
                }

            }
            Console.WriteLine("{0},{1},{2},{3}", ab, Nab, Na, Nb);


            if (Nab >= 1)
            {
                if (Na == Nb && Na >= 1)
                {
                    Ans = Na + Nab;
                }
                else if (Na > Nb)
                {
                    if(Nb <= Nab)
                    {
                        Ans = Nb + Nab;
                    }
                    else
                    {
                        Ans = Nab * 2 + Nb - Nab; 
                    }
                }
                else if (Nb > Na)
                {
                    Ans = Na + Nab;
                }

            }
            else
            {
                if (Na == Nb &&  Na >= 1)
                {
                    Ans = Na;
                }
                else if (Na > Nb)
                {
                    Ans = Nb;
                }
                else if (Nb > Na)
                {
                    Ans = Na;
                }
            }

            Ans += ab;
            //Console.WriteLine("{0},{1},{2},{3}", ab, Nab, Na, Nb);
            Console.WriteLine(Ans);
        }





    }
}