#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:100000000")
#pragma GCC ostarimize("O500")
using namespace std;
const bool db = false;
vector<string> soldiers_name;
string general_array[300100];
int answer[300100];
int find_possible(set<int> s, int max_size) {
  for (int i = 1; i <= max_size; i++)
    if (!s.count(i)) return i;
}
map<int, int> incomings;
int main() {
  ios::sync_with_stdio(0);
  int soldiers, squad;
  cin >> soldiers >> squad;
  for (int i = 1; i <= soldiers - squad + 1; i++) cin >> general_array[i];
  for (char first = 'A'; first <= 'Z'; first++) {
    if (int(soldiers_name.size()) >= soldiers) break;
    for (char second = 'a'; second <= 'z'; second++) {
      if (int(soldiers_name.size()) >= soldiers) break;
      string name = "";
      name += first;
      name += second;
      soldiers_name.push_back(name);
    }
  }
  set<int> id;
  for (int i = 1; i < squad; i++) answer[i] = i, id.insert(i);
  for (int i = squad; i <= soldiers; i++) {
    if ((int)id.size() == squad) id.erase(answer[i - squad]);
    if (general_array[i - squad + 1] == "NO")
      answer[i] = answer[i - squad + 1];
    else {
      answer[i] = find_possible(id, soldiers);
      id.insert(answer[i]);
    }
  }
  for (int i = 1; i <= soldiers; i++)
    cout << soldiers_name[answer[i] - 1] << ' ';
  return 0;
}
