#include <bits/stdc++.h>
using namespace std;
int jud(string s) {
  if (s.size() == 1)
    return 0;
  else {
    for (int i = 0; i < s.size() - 1; i++)
      if (s[i] != s[i + 1]) return 2;
    return 1;
  }
}
int main(void) {
  int N;
  cin >> N;
  string str[11] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
  queue<string> ans;
  ans.push("a");
  int i, j, size;
  string s;
  for (i = 1; i < N; i++) {
    size = ans.size();
    for (j = 0; j < size; j++) {
      s = ans.front();
      ans.pop();
      if (jud(s) == 0) {
        ans.push(s + 'a');
        ans.push(s + 'b');
        continue;
      }
      if (jud(s) == 1) {
        ans.push(s + 'a');
        ans.push(s + 'b');
      }
      for (int k = 0; k <= i; k++) {
        s = s + str[k];
        ans.push(s);
      }
    }
  }
  while (!ans.empty()) {
    cout << ans.front() << endl;
    ans.pop();
  }
  return 0;
}
