#include <bits/stdc++.h>
using namespace std;
constexpr int mod = 1000000007;
constexpr int mod1 = 998244353;
vector<int> dx = {0, 1, 0, -1}, dy = {-1, 0, 1, 0};
inline bool inside(int y, int x, int h, int w) {
  if (y < h && y >= 0 && x < w && x >= 0) return true;
  return false;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
vector<string> s;
void dfs(int a, int n, string t) {
  if (a == n) {
    s.push_back(t);
    return;
  }
  for (char i = 'a'; i <= t[a - 1] + 1; i++) {
    dfs(a + 1, n, t + i);
  }
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  dfs(1, n, "a");
  sort(s.begin(), s.end());
  for (int i = 0; i < (s.size()); ++i) {
    cout << s.at(i) << endl;
  }
}
