private val ACCEPTABLE_HEAD = setOf('M', 'A', 'R', 'C', 'H')

fun main(args: Array<String>) {
    val n = readLine()?.toLong() ?: return

    // 名前の頭文字とその数のmapを作ってしまう
    // MARCH以外の頭文字をもつ名前は除外する
    val sMap: Map<Char, Long> = (0 until n)
        .map { readLine()!![0] }
        .filter { it in ACCEPTABLE_HEAD }
        .groupBy { it }
        .mapValues { it.value.size.toLong() }

    // sMapのsizeは今確実に5未満となっている
    // 5個から3つ選ぶ組み合わせを計算するために3重ループするが、
    // これは十分間に合う速度

    var count = 0L

    for (entry1 in sMap.entries) {
        for (entry2 in sMap.entries) {
            for (entry3 in sMap.entries) {
                // keyの順序を固定することで重複を排除する
                // Kotlin(1.0.0)だとcompareでChar to Numberの変換が行われてClassCastException
                // となるので、それを回避
                if (entry1.key.toInt() < entry2.key.toInt() &&
                    entry1.key.toInt() < entry3.key.toInt() &&
                    entry2.key.toInt() < entry3.key.toInt())
                {
                    count += (entry1.value * entry2.value * entry3.value)
                }
            }
        }
    }

    println(count)
}