#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma GCC diagnostic ignored "-Wunused-result"
unsigned long function(unsigned long x) { return x*x-x+1; }
int main()
{
unsigned long n;
scanf("%lu", &n);
unsigned long length = 1;
for(unsigned long i = 0; i < n; i++) { length = length * 2 + 1; }
char* string = alloca(length + 1);
string[length];
string[0] = 'a';
unsigned long index = 1;
for(unsigned long i = 1; i < n; i++)
{
string[index] = 'a';
for(unsigned long j = 0; j < index; j++) { string[j]++; }
memcpy(string + index + 1, string, index);
index = index * 2 + 1;
}
printf("%s", string);
}
#pragma GCC diagnostic pop