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 JavaScript (node.js v5.12) (judge verdict: Accepted)

"use strict";
function Main(input) {
  const args = input.split('\n');
  const N = parseInt(args.shift());
  let count = 0;
  let countA = 0;
  let countB = 0;
  let both = 0;
  args.forEach(f => {
    count += (f.length - f.replace(/AB/g, '').length) / 2;
    let endB = f.charAt(0) === 'B';
    if (endB) {
      countB ++;
    }
    let startA = f.charAt(f.length - 1) === 'A';
    if (startA) {
      countA ++;
    }
    if (startA && endB) {
      both ++;
    }
  });
  count += countA < countB ? countA : countB;
  count += (both > 0 && both === countA && both === countB) ? -1 : 0;
  console.log(count);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));