#include <bits/stdc++.h>
using namespace std;
int next(vector<int>& vec, vector<int>& dict) {
  int k = vec.size(), i = k;
  if (vec[i - 1] == 0) {
    vec[i - 1] = 1;
    dict[0]--;
    dict[1]++;
    return 1;
  }
  while (i >= 0) {
    if (--dict[vec[--i]]) break;
  }
  if (i == -1) return 0;
  vec[i]++;
  dict[vec[i++]]++;
  while (i < k) {
    vec[i++] = 0;
    dict[0]++;
  }
  return 1;
}
void print(vector<int>& vec) {
  int n = vec.size();
  for (int i = 0; i < (n); i++) printf("%c", vec[i] + 'a');
  printf("\n");
}
int main() {
  int k;
  cin >> k;
  vector<int> vec(k, 0), dict(k, 0);
  dict[0] = k;
  print(vec);
  while (next(vec, dict)) {
    print(vec);
    if (0) {
      for (int i = 0; i < (k); i++) printf("%d", dict[i]);
      printf("\n");
    }
  }
  return 0;
}
