ans=set() # 조건을 만족하는 길이 n 이상인 값을 저장
memo=set() # recur 함수에 넣었던 값을 다시 넣지 않기 위해서 저장

def recur(word, limit):
	#print(word)
	if len(word) >= limit :
		ans.add(word)
		return
	
	next = ['a' + word, word + 'a', 'b'*word.count('a') + word + 'b'*word.count('a')]
	
	for next_word in next:
		if next_word not in ans | memo:
			memo.add(next_word)
			recur(next_word, limit)

recur('a', int(input()))

print(len(ans))
print(ans)