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
import java.util.Scanner;
 
public class Main {
	public void solve() {
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		String[] strs = new String[N];
		for (int i=0; i<N; i++) {
			strs[i] = in.next();
		}
		in.close();
		
		int endACount = 0;
		int startBCount = 0;
		int doubleCount = 0;
		int middleABCount = 0;
		
		for (int i=0; i<N; i++) {
			boolean isStartB = false;
			if (strs[i].startsWith("B")) {
				startBCount++;
				isStartB = true;
			}
			if (strs[i].endsWith("A")) {
				endACount++;
				if (isStartB) {
					doubleCount++;
				}
			}
			int len = strs[i].length();
			middleABCount += (len - strs[i].replace("AB", "").length()) / 2;
		}
		
		long ret = 0;
		if (endACount == 0 || startBCount == 0) {
			
		} else if (endACount == startBCount) {
			if (doubleCount == endACount) {
				ret = endACount - 1;
			} else {
				ret = Math.min(endACount, startBCount);
			}
		} else {
			ret = Math.min(endACount, startBCount);
		}
		ret += middleABCount;
		
		System.out.println(ret);
	}
	
	public static void main(String[] args) {
		Main main = new Main();
		main.solve();
	}
 
}
