#include <bits/stdc++.h>
using namespace std;
const int MAXN = 10;
const long long MOD = 7;
long long _gcd(long long a, long long b) {
  if (b == 0) return a;
  return _gcd(b, a % b);
}
long long gcd(long long a, long long b) {
  a = abs(a), b = abs(b);
  if (a < b) swap(a, b);
  return _gcd(a, b);
}
long long qpow(long long a, long long n) {
  long long rt = 1;
  while (n) {
    if (n & 1) rt = (rt * a) % MOD;
    a = a * a % MOD;
    n >>= 1;
  }
  return rt;
}
long long factor[MAXN];
void cal_factor() {
  factor[0] = 1;
  for (int u = 1; u < MAXN; u++) {
    factor[u] = (factor[u - 1] * u) % MOD;
  }
}
long long C(long long n, long long k) {
  return factor[n] * qpow(factor[n - k], MOD - 2) % MOD *
         qpow(factor[k], MOD - 2) % MOD;
}
int N;
void generate(int depth, string s) {
  if (depth == N) {
    cout << s << "\n";
    return;
  }
  char e = 'a';
  if (depth != 0) e = char(s.back() + 1);
  for (char c = 'a'; c <= e; c++) {
    generate(depth + 1, s + c);
  }
}
void solve() {
  cin >> N;
  generate(0, "");
}
int main() { solve(); }
