#include <bits/stdc++.h>
using namespace std;
void svec(vector<string> &S, int n, int sum) {
  if (n == 1) {
    for (int i = 0; i < (int)(sum); i++) {
      S[i] = "a" + S[i];
    }
  } else if (n == 2) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 2 == 0)
        S[i] = "a" + S[i];
      else
        S[i] = "b" + S[i];
    }
    svec(S, n - 1, sum);
  } else if (n == 3) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 3 == 0)
        S[i] = "a" + S[i];
      else if (i % 3 == 1)
        S[i] = "b" + S[i];
      else
        S[i] = "c" + S[i];
    }
    svec(S, n - 1, sum);
  } else if (n == 4) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 4 == 0)
        S[i] = "a" + S[i];
      else if (i % 4 == 1)
        S[i] = "b" + S[i];
      else if (i % 4 == 2)
        S[i] = "c" + S[i];
      else
        S[i] = "d" + S[i];
    }
    svec(S, n - 1, sum);
  } else if (n == 5) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 5 == 0)
        S[i] = "a" + S[i];
      else if (i % 5 == 1)
        S[i] = "b" + S[i];
      else if (i % 5 == 2)
        S[i] = "c" + S[i];
      else if (i % 5 == 3)
        S[i] = "d" + S[i];
      else
        S[i] = "e" + S[i];
    }
    svec(S, n - 1, sum);
  } else if (n == 6) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 6 == 0)
        S[i] = "a" + S[i];
      else if (i % 6 == 1)
        S[i] = "b" + S[i];
      else if (i % 6 == 2)
        S[i] = "c" + S[i];
      else if (i % 6 == 3)
        S[i] = "d" + S[i];
      else if (i % 6 == 4)
        S[i] = "e" + S[i];
      else
        S[i] = "f" + S[i];
    }
    svec(S, n - 1, sum);
  } else if (n == 7) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 7 == 0)
        S[i] = "a" + S[i];
      else if (i % 7 == 1)
        S[i] = "b" + S[i];
      else if (i % 7 == 2)
        S[i] = "c" + S[i];
      else if (i % 7 == 3)
        S[i] = "d" + S[i];
      else if (i % 7 == 4)
        S[i] = "e" + S[i];
      else if (i % 7 == 5)
        S[i] = "f" + S[i];
      else
        S[i] = "g" + S[i];
    }
    svec(S, n - 1, sum);
  } else if (n == 8) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 8 == 0)
        S[i] = "a" + S[i];
      else if (i % 8 == 1)
        S[i] = "b" + S[i];
      else if (i % 8 == 2)
        S[i] = "c" + S[i];
      else if (i % 8 == 3)
        S[i] = "d" + S[i];
      else if (i % 8 == 4)
        S[i] = "e" + S[i];
      else if (i % 8 == 5)
        S[i] = "f" + S[i];
      else if (i % 8 == 6)
        S[i] = "g" + S[i];
      else
        S[i] = "h" + S[i];
    }
    svec(S, n - 1, sum);
  } else if (n == 9) {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 9 == 0)
        S[i] = "a" + S[i];
      else if (i % 9 == 1)
        S[i] = "b" + S[i];
      else if (i % 9 == 2)
        S[i] = "c" + S[i];
      else if (i % 9 == 3)
        S[i] = "d" + S[i];
      else if (i % 9 == 4)
        S[i] = "e" + S[i];
      else if (i % 9 == 5)
        S[i] = "f" + S[i];
      else if (i % 9 == 6)
        S[i] = "g" + S[i];
      else if (i % 9 == 7)
        S[i] = "h" + S[i];
      else
        S[i] = "i" + S[i];
    }
    svec(S, n - 1, sum);
  } else {
    for (int i = 0; i < (int)(sum); i++) {
      if (i % 10 == 0)
        S[i] = "a" + S[i];
      else if (i % 10 == 1)
        S[i] = "b" + S[i];
      else if (i % 10 == 2)
        S[i] = "c" + S[i];
      else if (i % 10 == 3)
        S[i] = "d" + S[i];
      else if (i % 10 == 4)
        S[i] = "e" + S[i];
      else if (i % 10 == 5)
        S[i] = "f" + S[i];
      else if (i % 10 == 6)
        S[i] = "g" + S[i];
      else if (i % 10 == 7)
        S[i] = "h" + S[i];
      else if (i % 10 == 8)
        S[i] = "i" + S[i];
      else
        S[i] = "j" + S[i];
    }
    svec(S, n - 1, sum);
  }
}
int main() {
  int n;
  cin >> n;
  int sum = 1;
  for (int i = 1; i <= n; ++i) {
    sum *= i;
  }
  vector<string> S(sum);
  svec(S, n, sum);
  for (int i = 0; i < (int)(sum); i++) cout << S[i] << endl;
}
