import java.util.PriorityQueue

fun main(args: Array<String>) {
    val (H, W) = readInputLine().split(" ").map { it.toInt() }

    val cnt = IntArray('z' - 'a' + 1)
    
    for (i in 1..H) {
        readInputLine().forEach { cnt[it - 'a']++ }
    }

    val queue = PriorityQueue<Int>('z' - 'a' + 1) { x, y -> x.compareTo(y) * -1 }

    for (c in cnt) {
        queue.add(c)
    }

    // 4つ必要なところを見ていく
    for (i in 1..H / 2) {
        for (j in 1..W / 2) {
            val q = queue.poll()!!
            if (q < 4) {
                println("No")
                return
            }
            queue.add(q - 4)
        }
    }
    
    // 2つ必要なところを見ていく
    if (H % 2 == 1) {
        for (i in 1..W / 2) {
            val q = queue.poll()!!
            if (q < 2) {
                println("No")
                return
            }
            queue.add(q - 2)
        }
    }
    
    if (W % 2 == 1) {
        for (i in 1..H / 2) {
            val q = queue.poll()!!
            if (q < 2) {
                println("No")
                return
            }
            queue.add(q - 2)
        }
    }

    println("Yes")
}

fun readInputLine(): String {
    return readLine()!!
}
