In the beginning of the new year Keivan decided to reverse his name. He doesn't like palindromes, so he changed Naviek to Navick.

He is too selfish, so for a given n he wants to obtain a string of n characters, each of which is either 'a', 'b' or 'c', with no palindromes of length 3 appearing in the string as a substring. For example, the strings "abc" and "abca" suit him, while the string "aba" doesn't. He also want the number of letters 'c' in his string to be as little as possible.


-----Input-----

The first line contains single integer n (1 ≤ n ≤ 2·10^5) — the length of the string.


-----Output-----

Print the string that satisfies all the constraints.

If there are multiple answers, print any of them.


-----Examples-----
Input
2

Output
aa

Input
3

Output
bba



-----Note-----

A palindrome is a sequence of characters which reads the same backward and forward.

Difficulty: EASY

Solutions:
name = 'aabb'
n = int(input())
for i in range(0, n):
	print(name[i % 4], end='')


n = int(input())
ans = []
for i in range(n // 4):
	ans.extend(['a', 'a', 'b', 'b'])
k = n % 4
if k == 1:
	ans.append('a')
elif k == 2:
	ans.append('a')
	ans.append('a')
elif k == 3:
	ans.append('a')
	ans.append('a')
	ans.append('b')
print(''.join(ans))


n = int(input())
s = ''
l = n // 4 + 1
m = 4 - n % 4
for i in range(l):
	s += 'aabb'
print(s[:-m])


import sys
fin = sys.stdin
fout = sys.stdout
n = int(fin.readline())
m = ['a', 'b']
s = ''
for i in range(n):
	s += m[i // 2 % 2]
fout.write(s)


import sys
n = int(sys.stdin.readline())
if n == 1:
	print('a')
elif n == 2:
	print('aa')
else:
	i = 0
	while 1 > 0:
		if i % 4 == 0:
			print('aa', end='')
			i += 2
			if n - i == 0:
				break
			elif n - i == 1:
				print('b', end='')
				break
		elif i % 4 == 2:
			print('bb', end='')
			i += 2
			if n - i == 0:
				break
			elif n - i == 1:
				print('a', end='')
				break


n = int(input())
for i in range(n // 2):
	if i % 2 == 0:
		print('aa', end='')
	else:
		print('bb', end='')
if n % 4 == 1:
	print('a' * (n % 2), end='')
else:
	print('b' * (n % 2), end='')
print()


import math, string, itertools, collections, re, fractions, array, copy
import bisect
import heapq
from itertools import chain, dropwhile, permutations, combinations
from collections import deque, defaultdict, OrderedDict, namedtuple, Counter, ChainMap

def VI():
	return list(map(int, input().split()))

def I():
	return int(input())

def LIST(n, m=None):
	return [0] * n if m is None else [[0] * m for i in range(n)]

def ELIST(n):
	return [[] for i in range(n)]

def MI(n=None, m=None):
	if n is None:
		(n, m) = VI()
	arr = LIST(n)
	for i in range(n):
		arr[i] = VI()
	return arr

def MS(n=None, m=None):
	if n is None:
		(n, m) = VI()
	arr = LIST(n)
	for i in range(n):
		arr[i] = input()
	return arr

def MIT(n=None, m=None):
	if n is None:
		(n, m) = VI()
	a = MI(n, m)
	arr = LIST(m, n)
	for (i, l) in enumerate(a):
		for (j, x) in enumerate(l):
			arr[j][i] = x
	return arr

def main(info=0):
	n = I()
	if n <= 2:
		print('aa'[:n])
		return
	s = []
	for i in range(n):
		if i % 4 == 0 or i % 4 == 1:
			s.append('a')
		else:
			s.append('b')
	print(''.join(s))
main()


n = int(input())
ans_string = ''
last = 4
for i in range(n):
	if last == 4:
		ans_string += 'a'
		last = 1
	elif last == 1:
		ans_string += 'a'
		last = 2
	elif last == 2:
		ans_string += 'b'
		last = 3
	else:
		ans_string += 'b'
		last = 4
print(ans_string)


n = int(input())
aabb = 'aabb'
print(''.join((aabb[i % 4] for i in range(n))))


n = int(input())
A = []
A += ['aabb'] * (n // 4)
n = n % 4
A += ['aabb'[:n]]
print(''.join(A))


n = int(input())
res = 'aabb' * (n // 4 + 1)
print(res[:n])


x = int(input())
h = ''
for i in range(1, x + 1):
	if i % 4 == 1:
		h = h + 'a'
	if i % 4 == 2:
		h = h + 'a'
	if i % 4 == 3:
		h = h + 'b'
	if i % 4 == 0:
		h = h + 'b'
print(h)


n = int(input())
l = ''
a = 'a'
b = 'aa'
c = 'aab'
d = 'aabb'
if n == 1:
	print(a)
elif n == 2:
	print(b)
elif n == 3:
	print(c)
elif n == 4:
	print(d)
else:
	for i in range(int(n / 4)):
		l = l + d
	if n % 4 == 0:
		print(l)
	elif n % 4 == 1:
		print(l + a)
	elif n % 4 == 2:
		print(l + b)
	elif n % 4 == 3:
		print(l + c)


import sys
multistring = 2 * 10 ** 5 // 4 + 1
s = 'aabb' * multistring
n = int(input())
print(s[0:n])


n = int(input())
print(('aabb' * n)[:n])


n = int(input())
s = 'a'
c = 0
ans = []
while len(ans) < n:
	ans.append(s)
	c += 1
	if c == 2:
		s = 'a' if s == 'b' else 'b'
		c = 0
print(''.join(ans))


n = int(input())
t = n // 4
r = n % 4
if r > 1:
	(a, b) = (2, r - 2)
else:
	(a, b) = (r, 0)
print(t * 'aabb' + a * 'a' + b * 'b')


s = ''
n = int(input())
while len(s) < n + 10:
	s += 'aabb'
print(s[:n])


n = int(input())
s = 'aabb'
for i in range(1, n + 1):
	s = s * i
	if len(s) > n:
		break
s = s[:-(len(s) - n)]
if s == s[::-1]:
	print(s[:-1] + 'a')
else:
	print(s)


n = int(input())
print(('aabb' * 50000)[:n])


import math
import sys
from collections import *
from bisect import bisect_left, bisect_right

def cint():
	return list(map(int, sys.stdin.readline().strip().split()))

def cstr():
	return list(map(str, input().split(' ')))

def solve():
	n = int(input())
	if n == 1:
		print('a')
	elif n == 2:
		print('aa')
	elif n == 3:
		print('aab')
	else:
		ans = ''
		freq = n // 4
		ans = freq * 'aabb'
		modu = n % 4
		if modu == 0:
			pass
		elif modu == 1:
			ans += 'a'
		elif modu == 2:
			ans += 'aa'
		else:
			ans += 'aab'
		print(ans)
t = 1
while t != 0:
	solve()
	t -= 1


n = int(input())
c = n // 4
if n % 4 == 1:
	print('aabb' * c, 'a', sep='')
if n % 4 == 2:
	print('aabb' * c, 'aa', sep='')
if n % 4 == 3:
	print('aabb' * c, 'aab', sep='')
if n % 4 == 0:
	print('aabb' * c)


n = int(input())
if n == 1:
	print('a')
elif n == 2:
	print('aa')
else:
	flag = 0
	ans = ''
	i = 0
	while i < n:
		if i == n - 1 and flag == 0:
			ans += 'a'
			i += 1
		elif i == n - 1 and flag == 1:
			ans += 'b'
			i += 1
		elif flag == 0:
			ans += 'aa'
			flag = 1
			i += 2
		else:
			ans += 'bb'
			flag = 0
			i += 2
	print(ans)


n = int(input())
e = 'aabb'
if n % 4 == 0:
	s = 'aabb' * (n // 4)
	print(s)
else:
	s = 'aabb' * (n // 4)
	s = s + e[0:n % 4]
	print(s)


n = int(input())
print('aabb' * (n // 4), end='')
if n % 4 == 1 or n % 4 == 2:
	print('a' * (n % 4))
elif n % 4 == 3:
	print('aab')


n = int(input())
s = 'aabb' * 100000
print(s[:n])


n = int(input())
ans = 'a'
if n != 1:
	ans += 'a'
	for i in range(2, n):
		if ans[i - 2] == 'a':
			ans += 'b'
		else:
			ans += 'a'
print(ans)


N = int(input().strip())

def swap(a, b):
	return (b, a)
flag = False
cur = 'a'
nxt = 'b'
st = cur
for n in range(N - 1):
	if flag:
		(cur, nxt) = swap(cur, nxt)
	st += cur
	flag = not flag
print(st)


from sys import maxsize, stdout, stdin, stderr
import re
tup = lambda : map(int, stdin.readline().split())
I = lambda : int(stdin.readline())
lint = lambda : [int(x) for x in stdin.readline().split()]
S = lambda : stdin.readline().replace('\n', '').strip()

def grid(r, c):
	return [lint() for i in range(r)]

def debug(*args, c=6):
	print('\x1b[3{}m'.format(c), *args, '\x1b[0m', file=stderr)
n = I()
s = 'aabb' * 50000
print(s[:n])


n = int(input())
print('aabb' * (n // 4), 'a' * (n % 4) if n % 4 <= 2 else 'aab', sep='')


print(('aabb' * 10 ** 5)[:int(input())])


n = int(input())
thingo = ['a', 'a', 'b', 'b']
print(int(n / 4) * 'aabb' + ''.join(thingo[:n % 4]))


n = int(input())
s = 'abc'
p1 = ''
p2 = ''
for i in range(0, n):
	for j in s:
		if not j == p2:
			print(j, end='')
			(p2, p1) = (p1, j)
			break


a = ''
n = int(input())
for i in range(n // 2):
	if i % 2 == 0:
		a = a + 'aa'
	else:
		a = a + 'bb'
if n == 1:
	print('a')
elif n == 3:
	print('aab')
elif n % 2 == 1:
	print(a + a[-3])
else:
	print(a)


n = int(input())
for i in range(1, n + 1):
	if i % 4 == 1 or i % 4 == 2:
		print('a', end='')
	else:
		print('b', end='')


n = int(input())
s = ''
for i in range(0, n):
	if i & 3 == 1 or i & 3 == 0:
		s += 'a'
	else:
		s += 'b'
print(s)


n = int(input())
S = 'aabb'
T = ''
T = S * (n // 4)
for i in range(n % 4):
	T = T + S[i]
print(T)


n = int(input())
someStr = 'aabb'
resultStr = someStr * (n // 4) + someStr[0:n % 4]
print(resultStr)


n = int(input())
s = ''
if n == 1:
	print('a')
elif n == 2:
	print('aa')
else:
	for i in range(n // 2):
		if i % 2 == 0:
			s = s + 'aa'
		else:
			s = s + 'bb'
	if n % 2 == 1 and s[-1] == 'a':
		s = s + 'b'
		print(s)
	elif n % 2 == 1 and s[-1] == 'b':
		s = s + 'a'
		print(s)
	else:
		print(s)


n = int(input())
i = 0
while i < n:
	if i % 4 < 2:
		print('a', end='')
	else:
		print('b', end='')
	i += 1


for i in range(int(input())):
	print('a' if i & 3 < 2 else 'b', end='')


n = int(input())
a = ['a', 'a']
for i in range(2, n):
	y = a[-2]
	if y == 'a':
		y = 'b'
	else:
		y = 'a'
	a.append(y)
print(''.join(a[:n]))


print(('aabb' * 50000)[:int(input())])


n = int(input())
ans = ''
ans += 'aabb' * (n // 4)
if n % 4 == 1:
	ans += 'a'
elif n % 4 == 2:
	ans += 'aa'
elif n % 4 == 3:
	ans += 'aab'
elif n % 4 == 4:
	ans += 'aabb'
print(ans)


import math

def main():
	n = int(input())
	ans = ''
	for i in range(n):
		if i % 4 == 0 or i % 4 == 1:
			ans += 'a'
		else:
			ans += 'b'
	print(ans)
main()


x = int(input())
a = 'a'
b = 'b'
n = 0
i = 0
while i != x:
	while i != x and n != 2:
		print(a, end='')
		i = i + 1
		n = n + 1
	n = 0
	while i != x and n != 2:
		print(b, end='')
		i = i + 1
		n = n + 1
	n = 0
print()


from math import ceil
n = int(input().strip())
s = 'aabb'
ans = s * ceil(n / 4)
ans = ans[:n]
print(ans)


n = int(input())
x = 'aabb'
print(x * (n // 4), end='')
n %= 4
if n == 1:
	print('a')
elif n == 2:
	print('aa')
elif n == 3:
	print('aab')


n = int(input())
ans = ''
cnt = 0
b = False
for i in range(n):
	if cnt == 2:
		b = not b
		cnt = 0
	if b:
		ans += 'b'
	else:
		ans += 'a'
	cnt += 1
print(ans)


n = int(input())
print('aabb' * (n // 4) + ''.join([['', 'a', 'a', 'b'][i % 4] for i in range(n % 4 + 1)]))


n = int(input())
if n == 1:
	print('a')
elif n == 2:
	print('aa')
elif n == 3:
	print('aab')
elif n == 4:
	print('aabb')
else:
	l = list('aabb')
	count = 0
	for i in range(4, n):
		if count == 0 or count == 1:
			l.append('a')
		else:
			l.append('b')
		count += 1
		if count == 4:
			count = 0
	c = ''.join(l)
	print(c)


print(''.join([chr(ord('a') + i % 4 // 2) for i in range(int(input()))]))


n = int(input())
for i in range(n):
	if i // 2 % 2 == 0:
		print('a', end='')
	else:
		print('b', end='')


n = int(input())
pairs = n // 2
leftover = n % 2
ans = ['aa' if x % 2 == 0 else 'bb' for x in range(pairs)]
if leftover:
	if len(ans) > 0:
		ans += ['b'] if ans[-1] == 'aa' else 'a'
	else:
		ans = ['a']
print(''.join(ans))


n = int(input())
s = ''
s1 = 'aabb'
if n == 1:
	print('a')
elif n == 2:
	print('aa')
elif n == 3:
	print('aab')
elif n % 4 == 0:
	s = s1 * (n // 4)
elif (n - 1) % 4 == 0:
	s = s1 * (n // 4) + 'a'
elif (n - 2) % 4 == 0:
	s = s1 * (n // 4) + 'aa'
elif (n - 3) % 4 == 0:
	s = s1 * (n // 4) + 'aab'
print(s)


n = int(input())
x = pow(10, 5)
x = x // 2
ans = ['a', 'a', 'b', 'b'] * x
print(''.join(ans[:n]))


n = int(input())
string = ''
count = 0
while count < n:
	if count < n:
		string = string + 'a'
		count = count + 1
	else:
		break
	if count < n:
		string = string + 'a'
		count = count + 1
	else:
		break
	if count < n:
		string = string + 'b'
		count = count + 1
	else:
		break
	if count < n:
		string = string + 'b'
		count = count + 1
	else:
		break
print(string)


n = int(input())
for i in range(3, n, 4):
	print('aabb', end='')
print('aabb'[:n % 4])


import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time, copy, functools
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20
mod = 10 ** 9 + 7

def LI():
	return [int(x) for x in sys.stdin.readline().split()]

def LI_():
	return [int(x) - 1 for x in sys.stdin.readline().split()]

def LF():
	return [float(x) for x in sys.stdin.readline().split()]

def LS():
	return sys.stdin.readline().split()

def I():
	return int(sys.stdin.readline())

def F():
	return float(sys.stdin.readline())

def S():
	return input()

def main():
	n = I()
	s = ''
	for i in range(n):
		if i % 4 < 2:
			s += 'a'
		else:
			s += 'b'
	return s
print(main())


n = int(input())
a = ('aa', 'bb')
l = []
while len(l) < n:
	l += a[len(l) // 2 % 2]
l = ''.join(l)[:n]
print(l)


import random
N = int(input(''))
S = list(['' for i in range(N)])
s1 = 'aabbaabbaabb'
for i in range(0, N):
	S[i] = s1[i % 12]
print(''.join(S))


N = int(input())
X = ['a', 'aa', 'aab']
print('aabb' * (N // 4), end='')
print(X[N % 4 - 1] if N % 4 != 0 else '')


n = int(input())
s = 'aabb'
x = int(n / 4)
y = n % 4
for i in range(x):
	print(s, end='')
if y > 0:
	print(s[0:y])


n = int(input())
s = 'bb'.join((n // 2 + 1) * ['aa'])[:n]
print(s)


n = int(input())
n1 = int(n / 2)
s = ''
current = 'aa'
for i in range(n1):
	s += current
	if i % 2 == 0:
		current = 'bb'
	else:
		current = 'aa'
if n > 2 * n1:
	s += current[0]
print(s)


n = int(input())
l = ['a', 'a', 'b', 'b']
s = ''
for i in range(n):
	s = s + l[i % 4]
print(s)


n = int(input())
l = []
for i in range(0, n):
	k = i % 4
	if k == 0 or k == 1:
		l.append('a')
	elif k == 2 or k == 3:
		l.append('b')
s = ''
print(s.join(l))


a = int(input())
b = 'aabb'
c = b * (a // 4 + 1)
print(c[0:a])


n = int(input())
s = ''
f = True
while 1 == 1:
	if n == 0:
		break
	elif n == 1:
		if f == True:
			s += 'a'
		else:
			s += 'b'
		n -= 1
	else:
		if f == True:
			s += 'aa'
			f = False
		else:
			s += 'bb'
			f = True
		n -= 2
print(s)


s = 'aabb' * 50000
n = int(input())
print(s[0:n])


n = int(input())
t = 'aabb' * (n // 4) + 'aabb'[:n % 4]
print(t)


n = int(input())
if n == 1:
	print('a')
elif n == 2:
	print('aa')
else:
	l = 'aa'
	for i in range(2, n):
		if l[i - 2] == 'b':
			l += 'a'
		else:
			l += 'b'
	print(l)


import math
import string

def main():
	n = int(input())
	print(('aabb' * (n // 4 + 1))[:n])
main()


n = int(input())
ans = ''
for i in range(n // 4):
	ans += 'aabb'
if n % 4 == 1:
	ans += 'a'
if n % 4 == 2:
	ans += 'aa'
if n % 4 == 3:
	ans += 'aab'
print(ans)


x = int(input())
c = 'aabb'
t = c * (x // 4) + c[:x % 4]
print(t)


n = int(input())
s = ''
abc = 'abc'
for i in range(n):
	if i < 2:
		s += 'a'
	else:
		for j in abc:
			if s[i - 2] + s[i - 1] + j != j + s[i - 1] + s[i - 2]:
				s += j
				break
print(s)


preset = 'aabb'
n = int(input())
m = n // 4 + 1
res = preset * m
print(res[:n])


n = int(input())
letters = 'aabb'
pali = ''
for i in range(n):
	pali += letters[i % 4]
print(pali)


n = int(input())
s = [' '] * n
for i in range(len(s)):
	if i % 4 == 0 or i % 4 == 1:
		s[i] = 'a'
	else:
		s[i] = 'b'
print(''.join(s))


import sys
import math

def get_ints():
	return map(int, input().strip().split())

def get_list():
	return list(get_ints())

def printspx(*args):
	return print(*args, end='')

def printsp(*args):
	return print(*args, end=' ')

def printchk(*args):
	return print(*args, end=' \\ ')
MODPRIME = int(1000000000.0 + 7)
BABYMODPR = 998244353
n = int(input())
for i in range(n):
	if i % 4 < 2:
		printspx('a')
	else:
		printspx('b')
print()


import math as mt
import sys, string, bisect
input = sys.stdin.readline
import random
from collections import deque, defaultdict
L = lambda : list(map(int, input().split()))
Ls = lambda : list(input().split())
M = lambda : map(int, input().split())
I = lambda : int(input())
d = defaultdict(int)
n = I()
w = 'aabb' * (n // 4) + 'aabb'[:n % 4]
print(w)


n = int(input())
x = n // 4 + 1
s = 'aabb' * x
print(s[0:n])


n = int(input())
print('aabb' * (n // 4) + 'a' * (n % 4 % 3) + 'aab' * (n % 4 // 3))


import sys

def solve():
	num = int(input())
	str = ''
	rep = num // 4 + 1
	for i in range(rep):
		str = str + 'aabb'
	print(str[0:num])
solve()


n = int(input())
a = ['a', 'a']
b = ['b', 'b']
k = 0
while True:
	if k == 0:
		if n > 0:
			k = 1
			if n >= 2:
				n = n - 2
				for i in range(2):
					print(a[i], end='')
			else:
				for i in range(n):
					print(a[i], end='')
				break
		else:
			break
	if k == 1:
		if n > 0:
			k = 0
			if n >= 2:
				n = n - 2
				for i in range(2):
					print(b[i], end='')
			else:
				for i in range(n):
					print(b[i], end='')
				break
		else:
			break


(div_, mod_) = divmod(int(input()), 4)
print('aabb' * div_ + 'aabb'[:mod_])


from sys import stdin
inFile = stdin
tokens = []
tokens_next = 0

def next_str():
	global tokens, tokens_next
	while tokens_next >= len(tokens):
		tokens = inFile.readline().split()
		tokens_next = 0
	tokens_next += 1
	return tokens[tokens_next - 1]

def nextInt():
	return int(next_str())

def getNonPal(n):
	s = ''
	while len(s) < n:
		s += 'aabb'
	return s[:n]

def checkFor3Pal(s):
	for i in range(len(s) - 2):
		if s[i] == s[i + 2]:
			return True
	return False
print(getNonPal(nextInt()))


aa = ['aa']
bb = ['bb']
aabb = ['aabb']
n = int(input())
if n == 1:
	print('a')
	exit(0)
tmp = n // 4
str = aabb * tmp
tmp = n % 4
if tmp == 1:
	str += ['a']
elif tmp == 2:
	str += aa
elif tmp == 3:
	str = str + aa + ['b']
print(''.join(str))


N = int(input())
ans = ''
for i in range(0, N - 1, 2):
	if len(ans) == 0 or ans[len(ans) - 1] == 'b':
		ans += 'aa'
	else:
		ans += 'bb'
if len(ans) < N:
	if len(ans) == 0 or ans[len(ans) - 1] == 'b':
		ans += 'a'
	else:
		ans += 'b'
print(ans)


def main():
	first = second = third = 0
	n = int(input())
	answer = ''
	for _ in range(n):
		first = second
		second = third
		if first == 1:
			third = 2
		else:
			third = 1
		if third == 1:
			answer += 'a'
		else:
			answer += 'b'
	print(answer)
	return
main()


def main():
	n = int(input())
	print(''.join(list(('a' if i % 4 < 2 else 'b' for i in range(n)))))
main()


t = int(input())
s = 'aabb' * 1000000
print(s[:t])


x = int(input())
s = ''
A = 'bb'
for i in range(x // 2):
	if A == 'aa':
		A = 'bb'
	else:
		A = 'aa'
	s += A
if x % 2 == 0:
	print(s)
else:
	print(s + 'b' if A == 'aa' else s + 'a')


def main():
	n = int(input())
	print(('aabb' * (n // 4 + 1))[:n])
main()


n = int(input())
c = n // 4 if n % 4 == 0 else n // 4 + 1
res = 'aabb' * c
print(res[:n])


n = int(input())
p = 'aabb'
s = ''
if n >= 4:
	s = int(n / 4) * p
	n %= 4
s += p[:n]
print(s)


n = int(input())
a = 'aabb'
s = ''
for i in range(n):
	s += a[i % 4]
print(s)


n = int(input())
k = 0
for i in range(n):
	if k > 3:
		k = 0
	if k < 2:
		print('a', end='')
	else:
		print('b', end='')
	k += 1


n = int(input())
s = ''
j = n // 4
for i in range(j):
	s = s + 'aabb'
if n % 4 == 1:
	s = s + 'a'
elif n % 4 == 2:
	s = s + 'aa'
elif n % 4 == 3:
	s = s + 'aab'
print(s)


entrada = int(input())
string = 'aab'
while len(string) < entrada:
	if string[-2] == 'a':
		string += 'ba'
	else:
		string += 'ab'
print(string[0:entrada])


import random
n = int(input())
c = ''
k = 0
l = ['a', 'b']
while len(c) < n:
	c = c + 2 * l[k % 2]
	k += 1
print(c[0:n])


n = int(input())
a = ['a', 'a', 'b', 'b']
for i in range(n):
	print(a[i % 4], end='')


import bisect
import heapq
import math
import collections
import sys
import copy
from functools import reduce
import decimal
from io import BytesIO, IOBase
import os
sys.setrecursionlimit(10 ** 9)
decimal.getcontext().rounding = decimal.ROUND_HALF_UP
graphDict = collections.defaultdict
queue = collections.deque

class Graphs:

	def __init__(self):
		self.graph = graphDict(list)

	def add_edge(self, u, v):
		self.graph[u].append(v)

	def dfs_utility(self, nodes, visited_nodes):
		visited_nodes.add(nodes)
		for neighbour in self.graph[nodes]:
			if neighbour not in visited_nodes:
				self.dfs_utility(neighbour, visited_nodes)
			else:
				return neighbour

	def dfs(self, node):
		Visited = set()
		self.dfs_utility(node, Visited)

	def bfs(self, node):
		visited = set()
		if node not in visited:
			queue.append(node)
			visited.add(node)
		while queue:
			parent = queue.popleft()
			print(parent)
			for item in self.graph[parent]:
				if item not in visited:
					queue.append(item)
					visited.add(item)

def rounding(n):
	return int(decimal.Decimal(f'{n}').to_integral_value())

def factors(n):
	return set(reduce(list.__add__, ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0)))
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))

def inp():
	return sys.stdin.readline().strip()

def map_inp(v_type):
	return map(v_type, inp().split())

def list_inp(v_type):
	return list(map_inp(v_type))
n = int(inp())
ans = 'aabb' * 50001
print(ans[0:n])


x = int(input())
y = x % 4
z = x // 4
print('aabb' * z, end='')
if y == 1:
	print('a')
elif y == 2:
	print('aa')
elif y == 3:
	print('aab')


n = int(input())
if n == 2:
	print('aa')
else:
	l = 'aabb'
	x = n // 4
	y = n % 4
	s = l * x
	s += l[:y]
	print(s)


s = ''
a = ['a', 'a', 'b', 'b']
for i in range(int(input())):
	c = i % 4
	s += a[c]
print(s)


a = input()
a = int(a)
fg = 1
res = ''
for i in range(a):
	if i % 2 == 0:
		fg *= -1
	if fg == 1:
		res += 'b'
	else:
		res += 'a'
print(res)


s = 'aabb'
n = int(input())
while n >= 4:
	print(s * (n // 4), end='')
	n %= 4
for i in range(n):
	print(s[i], end='')


def generate_word(n):
	returnstring = ''
	for i in range(n):
		x = i % 4
		if x == 0 or x == 1:
			returnstring += 'a'
		elif x == 3 or x == 2:
			returnstring += 'b'
	return returnstring
n = int(input())
print(generate_word(n))


n = int(input())
s = ''
ss = 'aabb'
for i in range(n):
	s += ss[i % len(ss)]
print(s)


n = int(input())
a = n // 12
b = n % 12
s = ''
s1 = 'aabbaabbaabb'
if n <= 12:
	print(s1[0:n])
else:
	for i in range(1, a + 1):
		s += s1
	s += s1[0:b]
	print(s)


def f(n):
	return ('aabb' * ((n + 4) // 4))[:n]
print(f(int(input())))


n = int(input())
i = 0
while i < n:
	if i % 4 == 0 or i % 4 == 1:
		print('a', end='')
	if i % 4 == 2 or i % 4 == 3:
		print('b', end='')
	i += 1


n = int(input())
s = ''
for i in range(n):
	if len(s) < 2:
		s += 'a'
	else:
		us = s[len(s) - 2]
		s += 'a' if us == 'b' else 'b'
print(s)


n = int(input())
if n == 1:
	print('a')
	exit()
if n == 2:
	print('aa')
	exit()
l = ['a', 'a', 'b']
n -= 3
i = 3
while n > 0:
	if i % 4 == 0 or i % 4 == 1:
		l.append('a')
	else:
		l.append('b')
	n -= 1
	i += 1
s = ''.join(l)
print(s)


s = 'aabb' * 200005
n = int(input())
print(s[:n])


n = int(input())
res = ['aabb' for i in range(n // 4)]
if n % 4 == 1:
	res.append('a')
elif n % 4 == 2:
	res.append('aa')
elif n % 4 == 3:
	res.append('aab')
print(''.join(map(str, res)))


n = int(input())
s = []
while len(s) < n:
	s.append('a')
	s.append('a')
	s.append('b')
	s.append('b')
	s.append('a')
	s.append('a')
	s.append('b')
	s.append('b')
	s.append('a')
	s.append('a')
	s.append('b')
	s.append('b')
while len(s) > n:
	s.pop()
for i in s:
	print(i, end='')


import random
n = int(input())
options = ['a', 'b', 'c']
output = []
counter = 0
for i in range(n):
	if counter >= 4:
		counter = 0
	if counter < 2:
		output.append('a')
	elif counter < 4:
		output.append('b')
	counter += 1
print(''.join(output))


pat = 'aabb'
n = int(input())
k = n // 4
for i in range(k):
	print(pat, end='')
print(pat[:n % 4])


s = ['a', 'a', 'b', 'b']
n = int(input())
q = []
for i in range(n):
	q.append(s[i % 4])
print(*q, sep='')


m = int(input())
ss = ''
sss = 'aabb'
for i in range(m):
	ss += sss[i % 4]
print(ss)


n = int(input())
foo = 'aabb'
for i in range(n):
	print(foo[i % 4], end='')


n = int(input())
s = ''
k = 1
while k <= n:
	if k % 4 == 1:
		s = s + 'a'
	elif k % 4 == 2:
		s = s + 'a'
	elif k % 4 == 3:
		s = s + 'b'
	elif k % 4 == 0:
		s = s + 'b'
	k += 1
print(s)


import os
import sys
from io import BytesIO, IOBase

def main():
	n = int(input())
	chk = 1
	while n - 2 >= 0:
		n = n - 2
		if chk == 1:
			print('aa', end='')
			chk = 0
		else:
			print('bb', end='')
			chk = 1
	if n == 1:
		if chk == 1:
			print('a')
		else:
			print('b')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


n = int(input())
for x in range(n):
	if x % 4 == 0 or x % 4 == 1:
		print('a', end='')
	else:
		print('b', end='')


n = int(input())
st = ''
p = n % 4
s = n // 4
while s:
	st += 'aabb'
	s -= 1
if p < 3:
	st += 'a' * p
else:
	st += 'aab'
print(st)


n = int(input())
currs = 0
while n > 1:
	n -= 2
	if currs == 0:
		print('aa', end='')
		currs = 1
	else:
		print('bb', end='')
		currs = 0
if n == 1:
	if currs == 0:
		print('a', end='')
	else:
		print('b', end='')


a = int(input())
res = 'aabb' * 50000
res = res[:a]
print(res)


n = int(input())
if n % 4 == 0:
	g = 'aabb' * (n // 4)
elif n % 4 == 1:
	g = 'aabb' * (n // 4) + 'a'
elif n % 4 == 2:
	g = 'aabb' * (n // 4) + 'aa'
elif n % 4 == 3:
	g = 'aabb' * (n // 4) + 'aab'
print(g)


n = int(input())
k = n // 4
l = n - k * 4
s = 'aabb' * k
g = list('aabb')
for i in range(l):
	s = s + g[i]
print(s)


def editor():
	import sys
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')

def solve():
	n = int(input())
	s = ''
	for i in range(n):
		if i % 4 == 0 or i % 4 == 1:
			s += 'a'
		else:
			s += 'b'
	print(s)
tc = 1
for t in range(tc):
	solve()


n = int(input())
k = n // 4
if k * 4 == n:
	answer = 'aabb' * k
else:
	answer = ('aabb' * (k + 1))[:n]
print(answer)


import sys
import bisect
import math as mt
input = sys.stdin.readline
t = 1
mod = 10 ** 9 + 7
for _ in range(t):
	n = int(input())
	cnt = 0
	for i in range(n):
		if cnt <= 1:
			print('a', end='')
		else:
			print('b', end='')
		cnt += 1
		cnt %= 4


n = int(input())
a = ['', 'a', 'aa', 'aab']
b = 'aabb'
print(b * (n // 4) + a[n % 4])


def calc(n):
	unit = 'aabb'
	if n == 1:
		print('a')
	elif n == 2:
		print('aa')
	elif n == 3:
		print('aab')
	else:
		st = ''
		for i in range(n // 4):
			st += unit
		st += unit[:n % 4]
		print(st)
n = int(input())
calc(n)


n = int(input())
e = ''
cnt = 2
while len(e) < n:
	if cnt % 2 == 0:
		e += 'aa'
		cnt += 1
	else:
		e += 'bb'
		cnt += 1
if len(e) > n:
	print(e[:n])
else:
	print(e)


n = int(input())
if n % 4 == 0:
	print('aabb' * (n // 4))
elif n % 4 == 2:
	print('aabb' * (n // 4) + 'aa')
elif n % 4 == 1:
	print('aabb' * (n // 4) + 'a')
else:
	print('aabb' * (n // 4) + 'aab')


n = int(input())
order = {0: 'a', 1: 'a', 2: 'b', 3: 'b'}
ans = ''
for i in range(n):
	ans += order[i % 4]
print(ans)


n = int(input())
a = 'aabb'
if n % 4 == 0:
	print(n // 4 * a)
else:
	print(n // 4 * a + a[:n % 4])


n = int(input())
arr = ['a', 'a', 'b', 'b']
str = []
for i in range(n):
	str.append(arr[i % 4])
print(''.join(str))


n = int(input())
for i in range(n):
	if i % 4 in [0, 1]:
		print('a', end='')
	else:
		print('b', end='')


w = int(input())
ans = 'aa'
if w == 1:
	print('a')
elif w == 2:
	print('aa')
else:
	char = 'b'
	while len(ans) < w:
		if ans[-1] == 'a':
			char = 'b'
		else:
			char = 'a'
		ans += char * 2
	while len(ans) != w:
		ans = ans[:-1]
	print(ans)


n = int(input())
if n == 1:
	print('a')
	exit()
elif n % 2 == 0:
	i = 0
	res = ''
	while len(res) < n:
		res += 'aa' if i % 2 == 0 else 'bb'
		i += 1
else:
	i = 0
	res = ''
	while len(res) < n - 1:
		res += 'aa' if i % 2 == 0 else 'bb'
		i += 1
	res += 'a' if res[-1] == 'b' else 'b'
print(res)


print(('aabb' * 100000)[:int(input())])


from sys import stdin
n = int(stdin.readline())
print(('aabb' * 50000)[:n])


n = int(input())
a = n // 4
b = n % 4
x = 'aabb'
print(x * a + x[:b])


t = 1
for _ in range(t):
	n = int(input())
	l = 'ab'
	c = 0
	for i in range(n):
		if n == 1:
			print('a')
			break
		if c == n:
			break
		if c + 2 <= n:
			print(2 * l[i % 2], end='')
			c += 2
		else:
			print(l[i % 2], end='')
			break


class div2_411B:

	def solution(n):
		str = 'aabb'
		ans = ''
		for i in range(0, n):
			ans = ans + str[i % 4]
		return ans
n = int(input())
ans = div2_411B.solution(n)
print(ans)


n = int(input())
c = []
for i in range(n):
	r = i % 4
	if r < 2:
		c.append('a')
	else:
		c.append('b')
for i in c:
	print(i, end='')
print()


def three_palindrome(length):
	quotient = length // 4
	reminder = length % 4
	return 'aabb' * quotient + 'aabb'[:reminder]

def solver():
	length = int(input())
	print(three_palindrome(length))
solver()


s = 'aabb' * 10 ** 5
n = int(input())
print(s[:n])


n = int(input())
z = 'aabb'
print(z * (n // 4) + z[:n % 4])


n = int(input())
a = 'aabb' * 200001
a = a[:n]
print(a)


n = int(input())
result = 'aabb' * 2 * 10 ** 5
print(result[:n])


def main():
	a = int(input())
	s = ''
	while True:
		s += 'a'
		a -= 1
		if a == 0:
			break
		s += 'a'
		a -= 1
		if a == 0:
			break
		s += 'b'
		a -= 1
		if a == 0:
			break
		s += 'b'
		a -= 1
		if a == 0:
			break
	print(s)
main()


s = int(input())
ans = ''
for i in range(s):
	if i % 4 is 0 or i % 4 is 1:
		ans += 'a'
	else:
		ans += 'b'
print(ans)


n = int(input())
s = 'aabb'
a = len(s)
print(s * (n // a) + s[:n % a])


l = int(input())
st = 'aabb'
print(st * (l // 4) + st[0:l % 4])


length = int(input())
s = 'aabbaabb'
result = (s * (length // 3 + 1))[:length]
print(result)


n = int(input())
pattern = ['a', 'a', 'b', 'b']
ans = ''
for i in range(n):
	ans += pattern[i % 4]
print(ans)


n = int(input())
ans = []
for i in range(n):
	if i % 4 < 2:
		ans.append('a')
	else:
		ans.append('b')
print(''.join(ans))


n = int(input())
ans = 'aabb' * n
print(ans[:n])


print(('aabb' * 1000000)[:int(input())])


n = int(input())
s = 'aabb'
L = n % 4
red = s[0:L]
time = n // 4
ans = ''
for _ in range(time):
	ans += s
ans += red
print(ans)


n = int(input())
s = 'aabb' * 10000000
print(s[:n])


a = int(input())
i = 1
r = a // 2
s = ''
while i <= r:
	if i % 2 != 0:
		s = s + 'aa'
	else:
		s = s + 'bb'
	i = i + 1
if a % 2 == 0:
	print(s)
elif a % 2 != 0 and a != 1:
	if s[len(s) - 1] == 'a':
		print(s + 'b')
	elif s[len(s) - 1] == 'b':
		print(s + 'a')
elif a == 1:
	print('a')


count = int(input())
inp = 'aabb'
res = ''
for i in range(count):
	res += inp[i % 4]
print(res)


print((lambda t: ('aabb' * t)[:t])(int(input())))


import sys

def main():
	pass

def binary(n):
	return bin(n).replace('0b', '')

def decimal(s):
	return int(s, 2)

def pow2(n):
	p = 0
	while n > 1:
		n //= 2
		p += 1
	return p

def isPrime(n):
	if n == 1:
		return False
	else:
		root = int(n ** 0.5)
		root += 1
		for i in range(2, root):
			if n % i == 0:
				return False
		return True

def lts(l):
	s = ''.join(map(str, l))
	return s

def stl(s):
	l = list(s)
	return l

def sq(a, target, arr=[]):
	s = sum(arr)
	if s == target:
		return arr
	if s >= target:
		return
	for i in range(len(a)):
		n = a[i]
		remaining = a[i + 1:]
		ans = sq(remaining, target, arr + [n])
		if ans:
			return ans
mod = int(1000000000.0) + 7

def ssinp():
	return sys.stdin.readline().strip()

def iinp():
	return int(input())

def nninp():
	return map(int, sys.stdin.readline().strip().split())

def llinp():
	return list(map(int, sys.stdin.readline().strip().split()))

def p(xyz):
	print(xyz)

def p2(a, b):
	print(a, b)
import math
from collections import OrderedDict
n = iinp()
print(('aabb' * n)[:n])


def in_ra(n):
	for i in range(int(n / 4)):
		print('aabb', end='')
n = int(input())
if n % 4 == 1:
	in_ra(n)
	print('a')
elif n % 4 == 2:
	in_ra(n)
	print('aa')
elif n % 4 == 3:
	in_ra(n)
	print('aab')
else:
	in_ra(n)


n = int(input())
s = ''
i = 0
t = 0
if n % 2 == 0:
	while i < n:
		if t == 0:
			s = s + 'aa'
			i += 2
			t = 1
		else:
			s = s + 'bb'
			i += 2
			t = 0
	print(s, end='')
else:
	k = int(n / 2)
	m = 2 * k
	while i < m:
		if t == 0:
			s = s + 'aa'
			i += 2
			t = 1
		else:
			s = s + 'bb'
			i += 2
			t = 0
	if t == 0:
		s = s + 'a'
	else:
		s = s + 'b'
	print(s, end='')


import math
n = int(input())
ans = ''
for i in range(math.ceil(n / 2)):
	if i % 2 == 0:
		ans += 'aa'
	else:
		ans += 'bb'
print(ans[:n])


n = int(input())
(rep, rem, res) = (n // 2, n % 2, '')
chars = ['a', 'b']
for i in range(0, rep):
	res += 2 * chars[i % 2]
if n == 1:
	res += 'a'
elif rem != 0:
	res += 'a' if res[-1] == 'b' else 'b'
print(res)


a = int(input())
li = ['a', 'a', 'b', 'b']
for i in range(1, a + 1):
	print(li[(i - 1) % 4], end='')


n = int(input())
string = ''
for i in range(n):
	if i == 0 or i == 1:
		string += 'a'
	elif i == 2:
		string += 'b'
	elif string[i - 2] == 'a':
		string += 'b'
	elif string[i - 2] == 'b':
		string += 'a'
print(string)


x = int(input())
s1 = 'aabbaabbaabbaabbaabbaabb'
while 2 * x >= len(s1):
	s1 = s1 + s1
print(s1[:x])


from __future__ import division, print_function
from collections import *
from math import *
from itertools import *
from time import time
import os
import sys
from io import BytesIO, IOBase
if sys.version_info[0] < 3:
	from __builtin__ import xrange as range
	from future_builtins import ascii, filter, hex, map, oct, zip

def main():
	n = int(input())
	s = 'aabb'
	if n <= 4:
		print(s[:n])
		return
	if n % 2 == 0:
		if n % 4 == 0:
			dummy = n // 4
			print(s * dummy)
		else:
			dummy = (n - 2) // 4
			print(s * dummy + 'aa')
	else:
		dummy = n - 1
		if dummy % 2 == 0:
			if dummy % 4 == 0:
				dummy2 = dummy // 4
				print(s * dummy2 + 'a')
			else:
				dummy2 = (dummy - 2) // 4
				print(s * dummy2 + 'aab')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


n = int(input())
c = n // 4
o = n % 4
print('aabb' * c + 'aabb'[:o])


n = int(input())
x = 'a'
for i in range(1, n, 2):
	print(x * 2, end='')
	if x == 'a':
		x = 'b'
	else:
		x = 'a'
if n % 2:
	print(x)


x = 'aabb'
for i in range(int(input())):
	print(x[i % 4], end='')
print()


n = int(input())
answer = []
if n % 2 == 0:
	for i in range(n // 2):
		if i % 2 == 0:
			answer.append('aa')
		else:
			answer.append('bb')
else:
	for i in range((n - 1) // 2):
		if i % 2 == 0:
			answer.append('aa')
		else:
			answer.append('bb')
	if n % 4 == 3:
		answer.append('b')
	else:
		answer.append('a')
print(''.join(answer))


import sys
n = int(input())
result = 'a'
if n > 2:
	result = 'aa'
	for i in range(2, n):
		if result[i - 2] == 'a':
			result = result + 'b'
		else:
			result = result + 'a'
elif n == 2:
	result = 'aa'
print(result)


a = int(input())
ar = ['a', 'a', 'b', 'b']
s = ''
for i in range(a):
	s = s + ar[i % 4]
print(s)


def palindr():
	n = int(input())
	s = 'aabb'
	return (s * (n // 4 + 1))[:n]
print(palindr())


n = int(input())
a = ['a', 'aa', 'aab', '']
print('aabb' * (n // 4) + a[n % 4 - 1])


n = int(input())
ans = ['a', 'a', 'b', 'b'] * n
print(''.join(ans[:n]))


n = int(input())
i = n % 4
nb = n // 4
ret = 'aabb' * nb
if i == 1:
	ret += 'a'
elif i == 2:
	ret += 'aa'
elif i == 3:
	ret += 'aab'
print(ret)


n = int(input())
i = 0
k = 0
while i < n - n % 2:
	i += 2
	if k == 0:
		print('aa', end='')
	else:
		print('bb', end='')
	k = abs(k - 1)
if n % 2 == 1:
	if k == 0:
		print('a', end='')
	else:
		print('b', end='')


import random
n = int(input())
options = ['a', 'b', 'c']
output = []
i = 0
counter = 0
while i < n:
	if counter >= 4:
		counter = 0
	if counter < 2:
		output.append('a')
	elif counter < 4:
		output.append('b')
	i += 1
	counter += 1
print(''.join(output))


n = int(input())
l = [''] * n
for i in range(0, n, 4):
	l[i] = 'a'
for i in range(1, n, 4):
	l[i] = 'a'
for i in range(2, n, 4):
	l[i] = 'b'
for i in range(3, n, 4):
	l[i] = 'b'
print(''.join(l))


def solve():
	n = int(input())
	mystr = 'aabb'
	ans = ''
	val = n % 4
	if n % 4 == 0 or n / 4 > 1:
		ans += mystr * (n // 4)
	if val == 1:
		ans += 'a'
	elif val == 2:
		ans += 'aa'
	elif val == 3:
		ans += 'aab'
	print(ans)
solve()


import sys
import math
import bisect
import itertools
import random
import re

def main():
	n = int(input())
	A = []
	for i in range(n):
		if i % 4 == 0:
			A.append('a')
		elif i % 4 == 1:
			A.append('a')
		elif i % 4 == 2:
			A.append('b')
		elif i % 4 == 3:
			A.append('b')
	print(''.join(A))
main()


import math
import re
import random
n = int(input())
res = ''
for i in range(n):
	if i % 4 == 0 or i % 4 == 1:
		res += 'a'
	else:
		res += 'b'
print(res)


(n, s) = (int(input()), 'aabb')
print(s * (n >> 2) + s[:n & 3])


def __starting_point():
	s = ''
	n = int(input())
	while len(s) < n + 10:
		s += 'aabb'
	print(s[:n])
__starting_point()


n = int(input())
letters = 'aabbcc'
pali = ''
for i in range(n):
	pali += letters[i % 4]
print(pali)


n = int(input())
arr = []
count = 1
counti = 0
for i in range(n):
	if count == 1 or count == 2:
		arr.append('a')
	else:
		arr.append('b')
		counti += 1
	if counti == 2:
		count = 0
		counti = 0
	count += 1
for i in arr:
	print(i, end='')
print()


n = int(input())
cnt = n // 4 + 1
str = 'aabb' * cnt
print(str[:n])


c = int(input())
res = ''
for i in range(0, c // 2 + 1):
	if i & 1 == 0:
		res += 'aa'
	else:
		res += 'bb'
print(res[0:-1] if c & 1 == 1 else res[0:-2])