#include <bits/stdc++.h>
int n, s[10];
char a[11];
void yaru(int i, char c) {
  int j, k;
  char d;
  for (j = 0; j <= i; j++) {
    if (j < i && s[j] < j) continue;
    s[i] = j;
    if (i < n - 1)
      if (j < i)
        yaru(i + 1, c);
      else
        yaru(i + 1, ++c);
    else {
      d = a[0];
      for (k = 1; k < n; k++)
        if (s[k] != k)
          a[k] = a[s[k]];
        else
          a[k] = ++d;
      puts(a);
    }
  }
}
int main() {
  int i;
  scanf("%d", &n);
  for (i = 0; i < n; i++) s[i] = 0;
  a[0] = 'a';
  a[n] = '\0';
  yaru(1, 'a');
  return 0;
}
