#include <stdio.h>

void printPalindroms(char* buffer, int length, int amount, int* alreadyPrinted);

int main(void) {
	int n;
	scanf("%d", &n);
	
	char buffer[32] = {0};
	int currentPalindromLength = 0;
	int palindromsWithCurrentLength = 1;
	int printIndex = 1;
	while (n > 0) {
		int amount = n < palindromsWithCurrentLength ? n : palindromsWithCurrentLength;
		printPalindroms(buffer, currentPalindromLength, amount, &printIndex);
		n -= amount;
		++currentPalindromLength;
		if (currentPalindromLength % 2) {
			palindromsWithCurrentLength <<= 1;
		}
	}
	
	return 0;
}

void printPalindroms(char* buffer, int length, int amount, int* printIndex) {
	int k = (length + 1) / 2;
	for (int i = 0; i < amount; ++i) {
		for (int j = 0, mask = 1 << (k - 1); mask > 0; ++j, mask >>= 1) {
			buffer[j] = (i & mask) ? 'b' : 'a';
		}
		printf("%4d. ", *printIndex);
		++*printIndex;
		printf("%s", buffer);
		for (char* p = &buffer[k - 1 - (length % 2)]; p >= buffer; --p) {
			printf("%c", *p);
		}
		printf("\n");
	}
}