#include <bits/stdc++.h>
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
const long long INF = 1000LL * 1000 * 1000 * 1000 * 1000 * 1000;
const int inf = 1000 * 1000 * 1000;
const long double PI = acos(-1.0);
const long long mod1 = inf + 7;
const long long mod2 = inf + 9;
const int MAXN = 1000005;
const long double EPS = 1e-11;
int hp = 179;
signed main() {
  ios_base::sync_with_stdio(0);
  cout.tie(0);
  cin.tie(0);
  ;
  srand(time(0));
  int n, k;
  cin >> n >> k;
  vector<string> w(n - k + 1);
  for (long long i = 0; i < w.size(); ++i) cin >> w[i];
  ;
  vector<string> posn;
  vector<string> ans;
  posn.push_back("Dddddddddd");
  for (int i = 0; i < 50; ++i) {
    string neww = "";
    neww.push_back('D');
    for (int j = 0; j < 7; ++j) {
      neww.push_back('a' + rand() % 26);
    }
    posn.push_back(neww);
  }
  int ti;
  for (int i = 0; i < k - 1; ++i) {
    ans.push_back(posn[i]);
    ti = i;
  }
  if (w[0] == "YES") {
    ans.push_back(posn[++ti]);
  } else {
    ans.push_back(ans[0]);
  }
  ti++;
  for (int i = 1; i < n - k + 1; ++i) {
    if (w[i] == "YES") {
      ans.push_back(posn[ti]);
      ti++;
    } else {
      ans.push_back(ans[ans.size() - k + 1]);
    }
  }
  for (int i = 0; i < ans.size(); ++i) cout << ans[i] << ' ';
  ;
}
