#include <bits/stdc++.h>
using namespace std;
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
void solve() {
  int N;
  cin >> N;
  set<string> st;
  for (int now = 0; now < (1 << N) / 2; ++now) {
    string s = "a";
    for (int k = 0, k_len = (N - 1); k < k_len; ++k) {
      if ((1 << k) & now)
        s.push_back('b');
      else
        s.push_back('a');
    }
    st.insert(s);
  }
  for (const auto &it : st) {
    cout << it << "\n";
  }
}
int main() {
  solve();
  return 0;
}
