#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const int MOD = 1000000007;
vector<string> st;
vector<string> p = {"a", "b", "c", "d", "e", "f", "g", "h", "i",
                    "j", "k", "l", "m", "n", "o", "p", "q", "r",
                    "s", "t", "u", "v", "w", "x", "y", "z"};
int n;
void dfs(int idx, char before, string now) {
  if (idx == n)
    st.push_back(now);
  else {
    int i = before - 'a';
    for (int j = 0; j < (int)(i + 2); j++) {
      dfs(idx + 1, (char)('a' + j), now + p[j]);
    }
  }
}
int main() {
  cin >> n;
  dfs(1, 'a', "a");
  for (int i = 0; i < (int)((int)st.size()); i++) {
    cout << st.at(i) << endl;
  }
  return 0;
}
