#include <bits/stdc++.h>
using namespace std;
vector<pair<string, pair<int, int> > > vec;
void dfs(int n, vector<int> c) {
  if (n == 0) {
    for (long long i = 0; i < (int)c.size() - 1; i++) {
      printf("%c", c[i] + 'a');
    }
    printf("%c\n", c[(int)c.size() - 1] + 'a');
  } else {
    vector<int> res;
    for (long long i = 0; i < (int)c.size(); i++) {
      res.emplace_back(c[i]);
    }
    for (long long i = 0; i < (int)c.size() + 1; i++) {
      res.emplace_back(i);
      dfs(n - 1, res);
      res.erase(res.end() - 1);
    }
  }
}
void solve(long long N) {
  vector<int> r = {};
  dfs(N, r);
}
int main() {
  long long N;
  scanf("%lld", &N);
  solve(N);
  return 0;
}
