#include <bits/stdc++.h>
using namespace std;
const int inf = 2147483647, dx[] = {-1, 0, 1, 0}, dy[] = {0, -1, 0, 1};
const int N = 100005, M = 1000005, K = 200005, mod = 1000000007;
const long long llinf = 9223372036854775807ll;
int k;
string s;
set<string> v;
string low(string t) {
  char c = 'a', ch;
  bool u[20];
  for (int i = 0; i < 20; i++) u[i] = false;
  for (int i = 0; i < t.size(); i++) {
    if (u[i]) continue;
    ch = t[i];
    t[i] = c;
    for (int j = i + 1; j < t.size(); j++)
      if (!u[j] && t[j] == ch) t[j] = c, u[j] = true;
    c++;
  }
  return t;
}
int main() {
  cin >> k;
  if (k > 1) cout << string(k, 'a') << '\n';
  if (k >= 1) {
    for (int a1 = 0; a1 < k; a1++) {
      s = string(k, 'a');
      s[a1] = 'b';
      v.insert(low(s));
    }
  }
  if (k >= 2) {
    for (int a1 = 0; a1 < k - 1; a1++)
      for (int a2 = a1 + 1; a2 < k; a2++) {
        s = string(k, 'a');
        s[a1] = 'b';
        s[a2] = 'c';
        v.insert(low(s));
      }
  }
  if (k >= 3) {
    for (int a1 = 0; a1 < k - 2; a1++)
      for (int a2 = a1 + 1; a2 < k - 1; a2++)
        for (int a3 = a2 + 1; a3 < k; a3++) {
          s = string(k, 'a');
          s[a1] = 'b';
          s[a2] = 'c';
          s[a3] = 'd';
          v.insert(low(s));
        }
  }
  if (k >= 4) {
    for (int a1 = 0; a1 < k - 3; a1++)
      for (int a2 = a1 + 1; a2 < k - 2; a2++)
        for (int a3 = a2 + 1; a3 < k - 1; a3++)
          for (int a4 = a3 + 1; a4 < k; a4++) {
            s = string(k, 'a');
            s[a1] = 'b';
            s[a2] = 'c';
            s[a3] = 'd';
            s[a4] = 'e';
            v.insert(low(s));
          }
  }
  if (k >= 5) {
    for (int a1 = 0; a1 < k - 4; a1++)
      for (int a2 = a1 + 1; a2 < k - 3; a2++)
        for (int a3 = a2 + 1; a3 < k - 2; a3++)
          for (int a4 = a3 + 1; a4 < k - 1; a4++)
            for (int a5 = a4 + 1; a5 < k; a5++) {
              s = string(k, 'a');
              s[a1] = 'b';
              s[a2] = 'c';
              s[a3] = 'd';
              s[a4] = 'e';
              s[a5] = 'f';
              v.insert(low(s));
            }
  }
  if (k >= 6) {
    for (int a1 = 0; a1 < k - 5; a1++)
      for (int a2 = a1 + 1; a2 < k - 4; a2++)
        for (int a3 = a2 + 1; a3 < k - 3; a3++)
          for (int a4 = a3 + 1; a4 < k - 2; a4++)
            for (int a5 = a4 + 1; a5 < k - 1; a5++)
              for (int a6 = a5 + 1; a6 < k; a6++) {
                s = string(k, 'a');
                s[a1] = 'b';
                s[a2] = 'c';
                s[a3] = 'd';
                s[a4] = 'e';
                s[a5] = 'f';
                s[a6] = 'g';
                v.insert(low(s));
              }
  }
  if (k >= 7) {
    for (int a1 = 0; a1 < k - 6; a1++)
      for (int a2 = a1 + 1; a2 < k - 5; a2++)
        for (int a3 = a2 + 1; a3 < k - 4; a3++)
          for (int a4 = a3 + 1; a4 < k - 3; a4++)
            for (int a5 = a4 + 1; a5 < k - 2; a5++)
              for (int a6 = a5 + 1; a6 < k - 1; a6++)
                for (int a7 = a6 + 1; a7 < k; a7++) {
                  s = string(k, 'a');
                  s[a1] = 'b';
                  s[a2] = 'c';
                  s[a3] = 'd';
                  s[a4] = 'e';
                  s[a5] = 'f';
                  s[a6] = 'g';
                  s[a7] = 'h';
                  v.insert(low(s));
                }
  }
  if (k >= 8) {
    for (int a1 = 0; a1 < k - 7; a1++)
      for (int a2 = a1 + 1; a2 < k - 6; a2++)
        for (int a3 = a2 + 1; a3 < k - 5; a3++)
          for (int a4 = a3 + 1; a4 < k - 4; a4++)
            for (int a5 = a4 + 1; a5 < k - 3; a5++)
              for (int a6 = a5 + 1; a6 < k - 2; a6++)
                for (int a7 = a6 + 1; a7 < k - 1; a7++)
                  for (int a8 = a7 + 1; a8 < k; a8++) {
                    s = string(k, 'a');
                    s[a1] = 'b';
                    s[a2] = 'c';
                    s[a3] = 'd';
                    s[a4] = 'e';
                    s[a5] = 'f';
                    s[a6] = 'g';
                    s[a7] = 'h';
                    s[a8] = 'i';
                    v.insert(low(s));
                  }
  }
  if (k >= 9) {
    for (int a1 = 0; a1 < k - 8; a1++)
      for (int a2 = a1 + 1; a2 < k - 7; a2++)
        for (int a3 = a2 + 1; a3 < k - 6; a3++)
          for (int a4 = a3 + 1; a4 < k - 5; a4++)
            for (int a5 = a4 + 1; a5 < k - 4; a5++)
              for (int a6 = a5 + 1; a6 < k - 3; a6++)
                for (int a7 = a6 + 1; a7 < k - 2; a7++)
                  for (int a8 = a7 + 1; a8 < k - 1; a8++)
                    for (int a9 = a8 + 1; a9 < k; a9++) {
                      s = string(k, 'a');
                      s[a1] = 'b';
                      s[a2] = 'c';
                      s[a3] = 'd';
                      s[a4] = 'e';
                      s[a5] = 'f';
                      s[a6] = 'g';
                      s[a7] = 'h';
                      s[a8] = 'i';
                      s[a9] = 'j';
                      v.insert(low(s));
                    }
  }
  if (k >= 9) {
    for (int a1 = 0; a1 < k - 9; a1++)
      for (int a2 = a1 + 1; a2 < k - 8; a2++)
        for (int a3 = a2 + 1; a3 < k - 7; a3++)
          for (int a4 = a3 + 1; a4 < k - 6; a4++)
            for (int a5 = a4 + 1; a5 < k - 5; a5++)
              for (int a6 = a5 + 1; a6 < k - 4; a6++)
                for (int a7 = a6 + 1; a7 < k - 3; a7++)
                  for (int a8 = a7 + 1; a8 < k - 2; a8++)
                    for (int a9 = a8 + 1; a9 < k - 1; a9++)
                      for (int a10 = a9 + 1; a10 < k; a10++) {
                        s = string(k, 'a');
                        s[a1] = 'b';
                        s[a2] = 'c';
                        s[a3] = 'd';
                        s[a4] = 'e';
                        s[a5] = 'f';
                        s[a6] = 'g';
                        s[a7] = 'h';
                        s[a8] = 'i';
                        s[a9] = 'j';
                        s[a10] = 'k';
                        v.insert(low(s));
                      }
  }
  for (set<string>::iterator it = v.begin(); it != v.end(); it++)
    cout << (*it) << '\n';
  return 0;
}
