#include <bits/stdc++.h>
const int maxn = 2e3 + 5;
using namespace std;
int n;
int poww(int n) {
  int ans = 1;
  for (int i = 1; i < n; i++) ans *= 2;
  return ans;
}
char s[20][maxn][20];
int main() {
  scanf("%d", &n);
  s[1][1][0] = 'a';
  for (int i = 2; i <= n; i++) {
    for (int j = 1; j <= poww(i); j++) s[i][j][0] = 'a';
    for (int j = 1; j <= poww(i - 1); j++) s[i][j][1] = 'a';
    for (int j = poww(i - 1) + 1; j <= poww(i); j++) s[i][j][1] = 'b';
    for (int j = 1; j <= poww(i - 1); j++) {
      for (int k = 1; k < i - 1; k++) s[i][j][k + 1] = s[i - 1][j][k];
    }
    for (int j = poww(i - 1) + 1; j <= poww(i); j++) {
      for (int k = 1; k < i - 1; k++)
        s[i][j][k + 1] = s[i - 1][j - poww(i - 1)][k];
    }
  }
  for (int i = 1; i <= poww(n); i++) s[n][i][n] = '\0';
  for (int i = 1; i <= poww(n); i++) printf("%s\n", s[n][i]);
}
