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.

Examples

Input

3
ABCA
XBAZ
BAD


Output

2


Input

9
BEWPVCRWH
ZZNQYIJX
BAVREA
PA
HJMYITEOX
BCJHMRMNK
BP
QVFABZ
PRGKSPUNA


Output

4


Input

7
RABYBBE
JOZ
BMHQUVA
BPA
ISU
MCMABAOBHZ
SZMEHMA


Output

4
//package TaskC;

import java.io.FileInputStream;
import java.util.Scanner;

import static java.lang.Math.*;

public class Main {
    int N;
    String[] Ss;
    int ba, b, a, ab;
    int count(String s){
        int l = s.length();
        int res = 0;
        for(int i=0; i<l -1; i++){
            if(s.charAt(i)=='A' && s.charAt(i+1)=='B'){
                res++;
            }
        }
        return res;
    }

    void solve() throws Exception {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        Ss = new String[N];
        ba = 0; b = 0; a = 0; ab = 0;
        int res = 0;
        for(int i=0; i<N; i++){
            Ss[i] = sc.next();
            res += count(Ss[i]);
            int ls = Ss[i].length();
            if(Ss[i].charAt(0)=='B' && Ss[i].charAt(ls-1)=='A') ba++;
            //else if(Ss[i].charAt(0)=='A' && Ss[i].charAt(ls-1)=='B') ab++;
            else if(Ss[i].charAt(0)=='B') b++;
            else if(Ss[i].charAt(ls-1)=='A') a++;
        }

        if(ba<=abs(b-a)){
            res += min(a,b)+ba;
        }else{
            res += max(a,b) + ba-abs(b-a)-1;
            if(a+b>0) res++;
        }
        System.out.println(res);

    }

    public static void main(String[] args) throws Exception{
        //System.setIn(new FileInputStream("inputs/c.in"));
        Main s = new Main();
        s.solve();
    }
}
