#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;
}
using namespace std;
long long n;
set<string> st;
void rec(string s, long long step) {
  if (step == n) {
    st.insert(s);
    return;
  }
  long long limit = (step > 0 ? (long long)(s[step - 1] - 'a') + 1 : 0);
  for (long long i = 0; i <= limit; i++) {
    s[step] = (char)('a' + i);
    rec(s, step + 1);
  }
  return;
}
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(0);
  std::cout << fixed << setprecision(15);
  ;
  cin >> n;
  rec(string(n, ' '), 0);
  for (auto &s : st) cout << s << "\n";
}
