#include <bits/stdc++.h>
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return a * b / gcd(a, b); }
std::vector<std::string> sol(int n) {
  std::vector<std::string> rtn;
  if (n == 0) {
  } else if (n == 1) {
    rtn.push_back("a");
  } else {
    auto r = sol(n - 1);
    for (auto &&s : r) {
      for (int i = 0; i < n; i++) {
        char c = 'a' + i;
        std::string t = s + c;
        rtn.push_back(t);
      }
    }
  }
  return rtn;
}
int main(void) {
  std::cin.tie(0);
  std::ios::sync_with_stdio(false);
  int N;
  std::cin >> N;
  auto r = sol(N);
  for (auto &&a : r) std::cout << a << std::endl;
  return 0;
}
