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 Java7 (OpenJDK 1.7.0) (judge verdict: Wrong Answer)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Main {

    public static void main(String[] args) {

        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        PrintWriter out = new PrintWriter(System.out);

        try {


    		String strCnt = br.readLine();
    		int cnt = Integer.parseInt(strCnt);

    		String [] strData = new String [cnt];

    		int cntAB = 0;
    		int cntA = 0;
    		int cntB = 0;

    		for (int i=0 ; i<cnt ; i++) {
    			strData[i] = br.readLine();
    			if (strData[i].indexOf("AB") != -1) cntAB ++;
    			if (strData[i].endsWith("A")) cntA ++;
    			if (strData[i].startsWith("B")) cntB ++;

    		}

    		int cmpAB = 0;
    		if (cntA < cntB) {
    			cmpAB = cntA;
    		}else {
    			cmpAB = cntB;
    		}

    		if (cmpAB == cnt) cmpAB--;


       		System.out.println(cntAB + cmpAB);

            out.flush();


        } catch (IOException e) {

        }


    }

}