#include <bits/stdc++.h>
using namespace std;
template <typename A, size_t N, typename T>
void Fill(A (&array)[N], const T &val) {
  std::fill((T *)array, (T *)(array + N), val);
}
template <class T>
inline bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
int n;
char res[10];
void dfs(int id, int c, bool flag) {
  if (id == n) {
    for (int i = 0; i < (int)(n); ++i) {
      cout << res[i];
    }
    cout << "\n";
    return;
  }
  if (!flag) {
    for (int i = c; i < c + 1; i++) {
      res[id] = 'a' + i;
      flag = 1;
      dfs(id + 1, i, flag);
    }
  } else {
    for (int i = c; i < c + 2; i++) {
      res[id] = 'a' + i;
      dfs(id + 1, i, flag);
    }
  }
}
int main() {
  cin >> n;
  dfs(0, 0, 0);
  return 0;
}
