#include <iostream>
#include <sstream>
#include <vector>
#include <cmath>
#include <ctime>
#include <cassert>
#include <ctype.h>
#include <iomanip>
#include <cstdio>
#include <float.h>
#include <queue>
#include <set>
#include <map>
#include <array>
#include <fstream>
#include <cstdlib>
#include <string>
#include <cstring>
#include <array>
#include <algorithm>
#include <numeric>
#include <stack>
#include <functional>
// #include <pair> 
       
using namespace std;
typedef pair<long long int, long long int> ii;
typedef vector<long long int> vi;
typedef vector<ii> vii;
#define INF 1000000000000000
       
#define endl '\n'
#define MOD 1000000007
// #define INF 1ll<<30
// #define MAX 100010
 
#define eps 1e-11
#define bit_max 1ll<<32
#define _USE_MATH_DEFINES
 
// long long binpow(long long a,long long b)
// {
//     if (b == 1) return a;
//     long long res = binpow(a, b/2)%MOD;
//     if (b % 2) return (res*((res*a)%MOD))%MOD;
//     else return (res * res)%MOD;
// }
 
// long long int fact(long long int a)
// {
//     if(a==0||a==1)
//         return 1;
//     long long int ans = 1;
//     for(int i=a;i>=1;i--)
//         ans = (ans * i);
//     return ans;
// }
 
// long long int ivmod(long long int a)
// {
//     return binpow(a,MOD-2);
// }
 
// long long int ncr(long long int a,long long int b)
// {
//     long long int pans=1;
//     for(int i =a;i>max(b,a-b);i--)
//         pans=pans*i;
//     long long int div = fact(min(b,a-b));
//     pans = pans/div;
//     return pans;
// }

pair<int ,char>  countr[26];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.precision(0);
    cout<<fixed;

#ifndef ONLINE_JUDGE
//    freopen("input.txt","r",stdin);
 //   freopen("output.txt","w",stdout);
#endif
    int n,m;
    cin>>n>>m;
    for(int i=0;i<26;i++)
    {
        countr[i].first = 0;
        countr[i].second = 'a'+i;
    }
    for(int i=0;i<n;i++)
    {
        string tt;
        cin>>tt;
        // cout<<tt<<endl;
        for(int j=0;j<tt.size();j++)
        {
            if(countr[tt[j]-'a'].first == 0)
                countr[tt[j]-'a'].first = 1;
            else
                countr[tt[j]-'a'].first++;
            countr[tt[j]-'a'].second = tt[j];
        }   
    }
    sort(countr,countr+26);
    int i =n;
    int k =25;
    int temp = 0;
    bool poss = true;
    while(i>=0)
    {
        if(i==1||i==0)
        {   
            if(i==1&&m%2!=0)
            {
                for(int z=0;z<m/2;z++)
                {
                    if(countr[k].first>=2)
                    {
                        countr[k].first-=2;
                        sort(countr,countr+26);
                    }
                    else
                    {
                        cout<<"No"<<endl;
                        return 0;
                    }
                }
                for(int z=0;z<n/2;z++)
                {
                    if(countr[k].first>=2)
                    {
                        countr[k].first-=2;
                        sort(countr,countr+26);
                    }
                    else
                    {
                        cout<<"No"<<endl;
                        return 0;
                    }
                }
                if(countr[k].first>=1)
                {
                    countr[k].first-=1;
                    sort(countr,countr+26);
                }
                else
                {
                    cout<<"No"<<endl;
                    return 0;
                }
            }
            else if(i==1&&m%2==0)
            {
                for(int j=0;j<m/2;j++)
                {
                    if(countr[k].first>=2)
                    {
                        countr[k].first-=2;
                        sort(countr,countr+26);
                    }
                    else
                    {
                        cout<<"No"<<endl;
                        return 0; 
                    }
                }
            }
            else if(i==0&&m%2==0)
            {

            }
            else
            {
                for(int j=0;j<n/2;j++)
                {
                    if(countr[k].first>=2)
                    {
                        countr[k].first-=2;
                        sort(countr,countr+26);
                    }
                    else
                    {
                        cout<<"No"<<endl;
                        return 0; 
                    }
                }
            }
        }
        else
        {
            for(int j=0;j<m/2;j++)
            {   
                if(countr[k].first>=4)
                {
                    countr[k].first-=4;
                    sort(countr,countr+26);
                }
                else
                {
                    cout<<"No"<<endl;
                    return 0;
                }
            }
        }
        i-=2;
    }
    cout<<"Yes";
#ifndef ONLINE_JUDGE
   cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif

    return 0;
}   


Measured memory_bytes: 256