#include <bits/stdc++.h>
long long int dfs(std::string &S, long long int N, char tmpmax,
                  long long int i) {
  if (i == N - 1) {
    for (char ctmp = 'a'; (int)ctmp <= (int)tmpmax + 1; ctmp++) {
      S[i] = ctmp;
      std::cout << S << std::endl;
    }
    return 0;
  }
  for (char ctmp = 'a'; ctmp <= tmpmax; ctmp++) {
    S[i] = ctmp;
    dfs(S, N, tmpmax, i + 1);
  }
  S[i] = tmpmax + 1;
  dfs(S, N, (char)((int)tmpmax + 1), i + 1);
  return 0;
}
int main() {
  long long int N;
  std::cin >> N;
  std::string S(N, 'a');
  std::cerr << S << std::endl;
  dfs(S, N, 'a', 1);
  return 0;
}
