#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mk make_pair
#define pb push_back
#define pf push_front
typedef pair<int, int> pii;
const int mod = 1000000007;
const int INF = 1000000009;
const long long INFL = 1000000000000000018ll;

//偶偶なら4の倍数　片方奇数列なら4の倍数でない2の倍数があってよい合計すると奇数列の長さになる　両方奇数列なら奇数個はひとつあって4の倍数でない2の倍数が

int H, W;
int alfa[30];

signed main()
{
    cin >> H >> W;
    for(int i = 0; i < H; i++){
        char s[W];
        cin >> s;
        for(int j = 0; j < W; j++){
            alfa[s[j] - 'a']++;
        }
    }/////////////////////////////////////////
    if(H % 2 == 0 && W % 2 == 0){
        int g4 = (H / 2) * (W / 2);
        while(g4--){
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 4 == 0 && alfa[i]){
                    alfa[i] -= 4;
                    break;
                }
            }
        }
        for(int i = 0; i < 26; i++){
            if(alfa[i]){
                printf("No\n");
                return 0;
            }
        }
        printf("Yes\n");
    }/////////////////////////////////////////
    else if(H % 2 == 0 && W % 2){
        int g2 = H / 2;
        int g4 = (H / 2) * (W / 2);
        while(g2){
            bool flag = false;
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 4 == 2){
                    alfa[i] -= 2;
                    flag = true;
                    break;
                }
            }
            if(!flag)break;
            g2--;
        }
        g4 += g2 / 2;
        while(g4--){
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 4 == 0 && alfa[i]){
                    alfa[i] -= 4;
                    break;
                }
            }
        }
        for(int i = 0; i < 26; i++){
            if(alfa[i]){
                printf("No\n");
                return 0;
            }
        }
        printf("Yes\n");
    }/////////////////////////////////////////
    else if(W % 2 == 0 && H % 2){
        int g2 = W / 2;
        int g4 = (H / 2) * (W / 2);
        while(g2){
            bool flag = false;
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 4 == 2){
                    alfa[i] -= 2;
                    flag = true;
                    break;
                }
            }
            if(!flag)break;
            g2--;
        }
        g4 += g2 / 2;
        while(g4--){
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 4 == 0 && alfa[i]){
                    alfa[i] -= 4;
                    break;
                }
            }
        }
        for(int i = 0; i < 26; i++){
            if(alfa[i]){
                printf("No\n");
                return 0;
            }
        }
        printf("Yes\n");
    }/////////////////////////////////////////
    else {
        int g1 = 1;
        int g2 = (H / 2) + (W / 2);
        int g4 = (H / 2) * (W / 2);
        while(g1--){
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 2){
                    alfa[i]--;
                    break;
                }
            }
        }
        while(g2){
            bool flag = false;
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 4 == 2){
                    alfa[i] -= 2;
                    flag = true;
                    break;
                }
            }
            if(!flag)break;
            g2--;
        }
        g4 += g2;
        while(g4--){
            for(int i = 0; i < 26; i++){
                if(alfa[i] % 4 == 0 && alfa[i]){
                    alfa[i] -= 4;
                    break;
                }
            }
        }
        for(int i = 0; i < 26; i++){
            if(alfa[i]){
                printf("No\n");
                return 0;
            }
        }
        printf("Yes\n");
    }



    return 0;
}
/*

*/




Measured memory_bytes: 256