#include <bits/stdc++.h>
using namespace std;
vector<string> split(const string& str, char delimiter) {
  vector<string> ret;
  string tmp = "";
  for (auto c : str) {
    if (c != delimiter) {
      tmp.push_back(c);
    } else {
      ret.push_back(tmp);
      tmp = "";
    }
  }
  ret.push_back(tmp);
  return ret;
}
template <typename T>
void sortAsc(vector<T>& v) {
  sort(v.begin(), v.end(), less<T>());
}
template <typename T>
void sortDesc(vector<T>& v) {
  sort(v.begin(), v.end(), greater<T>());
}
template <typename T>
void insert(vector<T>& dest, const vector<T>& src) {
  copy(src.begin(), src.end(), back_inserter(dest));
}
template <long long int MOD>
long long int mod_inv(long long int a) {
  long long b = MOD, u = 1, v = 0;
  while (b) {
    long long int t = a / b;
    a -= t * b;
    swap(a, b);
    u -= t * v;
    swap(u, v);
  }
  u %= MOD;
  if (u < 0) u += MOD;
  return u;
}
template <long long int MOD>
long long int mod_add(long long int a, long long int b) {
  return (a + b) % MOD;
}
template <long long int MOD>
long long int mod_sum(long long int a, long long int b) {
  return (a - b) % MOD;
}
template <long long int MOD>
long long int mod_mul(long long int a, long long int b) {
  return (a % MOD) * (b % MOD) % MOD;
}
template <long long int MOD>
long long int mod_mul(long long int a, long long int b, long long int c) {
  return mod_mul<MOD>(a, mod_mul<MOD>(b, c));
}
template <long long int MOD>
long long int mod_div(long long int a, long long int b) {
  return (a % MOD) * mod_inv<MOD>(b) % MOD;
}
int sign(long long int a) { return a >= 0 ? 1 : -1; }
void f(string& str, int offset, int k, int N) {
  if (offset == N) {
    cout << (str) << endl;
    ;
    return;
  }
  str[offset] = 'a' + (k - 1);
  if (offset + 1 < N) {
    for (int n = 1; n <= k + 1; ++n) {
      f(str, offset + 1, n, N);
    }
  } else {
    f(str, offset + 1, k, N);
  }
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  long long int N;
  cin >> N;
  ;
  std::string str;
  for (int i = 0; i < N; ++i) {
    str.append("a");
  }
  f(str, 0, 1, N);
  return 0;
}
