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

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int num=sc.nextInt();
        sc.nextLine();
        int a=0;
        int b=0;
        int ab=0;
        int total=0;
        for(int i=0; i<num; i++){
            String str = sc.nextLine();
            total+=simple(str);
            // System.out.println(str.charAt(0)=='B');
            // System.out.println(str.charAt(str.length()-1)=='A');
            if(str.charAt(0)=='B'&&str.charAt(str.length()-1)=='A'){
                ab++;
            }else if(str.charAt(str.length()-1)=='A'){
                a++;
            }else if(str.charAt(0)=='B'){
                b++;
            }
        }
        if(a>b){
            if(a-b>ab){
                total+=(b+ab);
            }else{
                total+=(a+b+ab)/2;
            }
        }else{
            if(b-a>ab){
                total+=(a+ab);
            }else{
                total+=(a+b+ab)/2;
            }
        }
        System.out.println(total);
        // System.out.println("XXXXXXXX");
    }
 
    static int simple(String str){
        int count = 0;
        boolean flag =false;
    	for(char x: str.toCharArray()){
    		if(x == 'A'){
    			flag = true;
    		}else if(x=='B'){
    		    if(flag){
    		        count++;
    		    }
    		    flag=false;
    		}else{
    		    flag=false;
    		}
    	}
    	return count;
    }
}