#include <bits/stdc++.h>
std::vector<std::string> ans;
int N;
void Fill(int i, std::vector<char> S) {
  if (S.size() < N) {
    for (int k = 0; k < i; k++) {
      S.push_back('a' + k);
      Fill(i, S);
      S.pop_back();
    }
  } else {
    std::string final;
    for (int i = 0; i < S.size(); i++) {
      final += S[i];
    }
    ans.push_back(final);
  }
  return;
}
void Set(int i) {
  std::vector<char> s;
  for (int j = 0; j < i - 1; j++) {
    s.push_back('a' + j);
  }
  Fill(i, s);
  return;
}
int main() {
  scanf("%d", &N);
  for (int i = 1; i <= N; i++) {
    Set(i);
  }
  std::sort(ans.begin(), ans.end());
  ans.erase(unique(ans.begin(), ans.end()), ans.end());
  for (int i = 0; i < ans.size(); i++) {
    std::cout << ans[i] << std::endl;
  }
  return 0;
}
