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
Tags: Constructive algorithms

Starter code:

Solutions:
n = int(input())
s = 'abba' * (n // 4)
k = n % 4
c = 'abba'
for i in range(k):
	s = s + c[i]
print(s)


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 = 'bbaa' * ((n + 4) // 4)
s = s[:n]
print(s)


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())
if n == 1:
	print('a')
	exit()
if n == 2:
	print('aa')
	exit()
res = 0
res1 = 'bba'
for i in range(2, n - 1):
	if res1[i - 1] != 'a':
		res1 += 'a'
	elif res1[i - 1] != 'b':
		res1 += 'b'
	else:
		res1 += 'c'
print(res1)


n = int(input())
s = 'bbaa' * 1000000
print(s[: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])


n = int(input())
s = ['b', 'b', 'a', 'a']
i = 1
ans = ''
while i <= n:
	ans += str(s[i % 4 - 1])
	i += 1
print(ans)


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


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)


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


n = int(input())
res = ''
for _ in range(n // 2):
	if len(res) < 2:
		res += 'bb'
	elif res[-1] == 'a':
		res += 'bb'
	else:
		res += 'aa'
if n % 2 == 1:
	if n == 1:
		res += 'a'
	elif res[-1] == 'a':
		res += 'b'
	else:
		res += 'a'
print(res)


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


n = int(input())
ta = []
ta.append('a')
ta.append('a')
ta.append('b')
if n == 1:
	print('b')
elif n == 2:
	print('bb')
else:
	for x in range(65555555):
		if len(ta) < n:
			if ta[-1] == 'b':
				ta.append('b')
				ta.append('a')
			else:
				ta.append('a')
				ta.append('b')
		else:
			break
	for x in range(3):
		if len(ta) > n:
			ta.pop()
		else:
			break
	print(''.join(ta))


t = int(input())
if t == 2:
	print('aa')
elif t == 3:
	print('bba')
else:
	print('bbaa' * (t // 4) + 'bbaa'[:t % 4])


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())
if n == 1 or n == 2:
	print('a' * n)
	exit()
print('bbaa' * (n // 4) + 'bbaa'[:n % 4])


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')


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


n = int(input().strip())
t = True
ans = ''
while n > 0:
	if n >= 2:
		n = n - 2
		if t == True:
			ans = ans + 'bb'
			t = False
		else:
			ans = ans + 'aa'
			t = True
	else:
		n = 0
		if t == True:
			ans = ans + 'b'
			t = False
		else:
			ans = ans + 'a'
			t = True
print(ans)


n = int(input())
ans = 'abbaabbaabba'
x = n // 12
r = n % 12
fans = ans * x + ans[:r]
print(fans)


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())
ans = []
while len(ans) < n:
	ans += ['a']
	ans += ['b']
	ans += ['b']
	ans += ['a']
print(''.join(ans[:n]))


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='')


def result():
	n = int(input())
	ret = ''
	if n == 1:
		return 'a'
	elif n == 2:
		return 'ab'
	for i in range(n):
		if i < 2:
			ret = 'ab'
		elif ret[i - 2] == 'a':
			ret += 'b'
		elif ret[i - 2] == 'b':
			ret += 'a'
	return ret
print(result())


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)


a = int(input())
string = ''
i = 0
while i < a:
	if i % 4 == 0 or i % 4 == 1:
		string += 'b'
	else:
		string += 'a'
	i += 1
print(string)


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()


n = int(input())
a = 'abba'
ans = list(())
while len(ans) < n:
	ans += a
for i in range(0, n):
	print(ans[i], end='')


from sys import stdin, stdout

def readint():
	return map(int, stdin.readline().split())
n = int(input())
a = 'abba'
ans = a * (n // 4 + 10)
print(ans[:n])


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')


from __future__ import division, print_function
import os, 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 ii():
	return int(input())

def si():
	return input()

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

def msi():
	return map(str, input().strip().split(' '))

def li():
	return list(mi())

def dmain():
	sys.setrecursionlimit(1000000)
	threading.stack_size(1024000)
	thread = threading.Thread(target=main)
	thread.start()
import sys
input = sys.stdin.readline
scanner = lambda : int(input())
string = lambda : input().rstrip()
get_list = lambda : list(read())
read = lambda : map(int, input().split())
get_float = lambda : map(float, input().split())

def ceil(x):
	if x != int(x):
		x = int(x) + 1
	return x

def factorial(x, m):
	val = 1
	while x > 0:
		val = val * x % m
		x -= 1
	return val

def fact(x):
	val = 1
	while x > 0:
		val *= x
		x -= 1
	return val

def swaparr(arr, a, b):
	temp = arr[a]
	arr[a] = arr[b]
	arr[b] = temp

def gcd(a, b):
	if b == 0:
		return a
	return gcd(b, a % b)

def lcm(a, b):
	return a * b // math.gcd(a, b)

def is_integer(n):
	return math.ceil(n) == math.floor(n)

def nCr(n, k):
	if k > n:
		return 0
	if k > n - k:
		k = n - k
	res = 1
	for i in range(k):
		res = res * (n - i)
		res = res / (i + 1)
	return int(res)

def primefs(n):
	primes = {}
	while n % 2 == 0 and n > 0:
		primes[2] = primes.get(2, 0) + 1
		n = n // 2
	for i in range(3, int(n ** 0.5) + 2, 2):
		while n % i == 0 and n > 0:
			primes[i] = primes.get(i, 0) + 1
			n = n // i
	if n > 2:
		primes[n] = primes.get(n, 0) + 1
	return primes

def power(x, y, p):
	res = 1
	x = x % p
	if x == 0:
		return 0
	while y > 0:
		if y & 1 == 1:
			res = res * x % p
		y = y >> 1
		x = x * x % p
	return res

def swap(a, b):
	temp = a
	a = b
	b = temp
	return (a, b)

def find(x, link):
	p = x
	while p != link[p]:
		p = link[p]
	while x != p:
		nex = link[x]
		link[x] = p
		x = nex
	return p

def union(x, y, link, size):
	x = find(x, link)
	y = find(y, link)
	if size[x] < size[y]:
		(x, y) = swap(x, y)
	if x != y:
		size[x] += size[y]
		link[y] = x

def sieve(n):
	prime = [True for i in range(n + 1)]
	(prime[0], prime[1]) = (False, False)
	p = 2
	while p * p <= n:
		if prime[p] == True:
			for i in range(p * p, n + 1, p):
				prime[i] = False
		p += 1
	return prime

def phi(n):
	result = n
	p = 2
	while p * p <= n:
		if n % p == 0:
			while n % p == 0:
				n = n // p
			result = result * (1.0 - 1.0 / float(p))
		p = p + 1
	if n > 1:
		result = result * (1.0 - 1.0 / float(n))
	return int(result)

def is_prime(n):
	if n == 0:
		return False
	if n == 1:
		return True
	for i in range(2, int(n ** (1 / 2)) + 1):
		if not n % i:
			return False
	return True

def next_prime(n, primes):
	while primes[n] != True:
		n += 1
	return n
MAXN = int(100000.0 + 5)

def spf_sieve():
	spf[1] = 1
	for i in range(2, MAXN):
		spf[i] = i
	for i in range(4, MAXN, 2):
		spf[i] = 2
	for i in range(3, ceil(MAXN ** 0.5), 2):
		if spf[i] == i:
			for j in range(i * i, MAXN, i):
				if spf[j] == j:
					spf[j] = i
spf = [0 for i in range(MAXN)]

def factoriazation(x):
	res = []
	for i in range(2, int(x ** 0.5) + 1):
		while x % i == 0:
			res.append(i)
			x //= i
	if x != 1:
		res.append(x)
	return res

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

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

def float_array():
	return list(map(float, input().strip().split()))

def str_array():
	return input().strip().split()

def binary_search(low, high, w, h, n):
	while low < high:
		mid = low + (high - low) // 2
		if check(mid, w, h, n):
			low = mid + 1
		else:
			high = mid
	return low

def check(beauty, s, n, count):
	pass
MOD = int(1000000000.0) + 7
CMOD = 998244353
INF = float('inf')
NINF = -float('inf')
alphs = 'abcdefghijklmnopqrstuvwxyz'
from itertools import permutations
import math
import bisect as bis
import random
import sys
import collections as collect

def solve():
	n = scanner()
	for i in range(n):
		if i % 4 == 0 or i % 4 == 1:
			print('a', end='')
		elif i % 4 == 2 or i % 4 == 3:
			print('b', end='')
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')
for i in range(1):
	solve()


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())
s = 'aabb'
print(s * (n // 4) + s[:n % 4])


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


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)


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


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 = n // 12
y = n % 12
s = ''
s1 = 'aabbaabbaabb'
if n <= 12:
	print(s1[0:n])
else:
	for i in range(1, x + 1):
		s += s1
	s += s1[0:y]
	print(s)


def main():
	N = int(input())
	string = 'aabb'
	for i in range(N // 4):
		print(string, end='')
	for i in range(N % 4):
		print(string[i], end='')
	print('')
main()


a = int(input())
res = ''
if a == 1:
	print('a')
elif a == 2:
	print('aa')
else:
	s = 1
	for n in range(a):
		if s <= 2:
			res += 'b'
		elif s <= 4:
			res += 'a'
		if s == 4:
			s = 1
		else:
			s += 1
	print(res)


n = int(input())
outStr = ''
for i in range(n):
	val = i % 4
	if val == 0 or val == 1:
		outStr += 'a'
	elif val == 2 or val == 3:
		outStr += 'b'
print(outStr)


Input = lambda : map(int, input().split())
n = int(input())
s = 'aabb'
print(s * (n // 4), end='')
print('a' * (n % 4) if n % 4 != 3 else 'aab')


def check(s):
	for i in range(len(s) // 2):
		if s[i] != s[-(i + 1)]:
			return True
	return False
n = int(input())
sub = 'aabb'
ans = ''
mod = n // 4
ans += sub * mod
for i in range(n % 4):
	ans += sub[i]
print(ans)


import sys

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

def iinput():
	return int(input())

def minput():
	return map(int, input().split())

def listinput():
	return list(map(int, input().split()))
n = iinput()
s = 'aabb'
print(s * (n // 4) + s[:n - n // 4 * 4])


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


class CodeforcesTask805BSolution:

	def __init__(self):
		self.result = ''
		self.n = 0

	def read_input(self):
		self.n = int(input())

	def process_task(self):
		self.result = self.n // 4 * 'aabb'
		if self.n % 4:
			if self.n % 4 == 3:
				self.result += 'aab'
			elif self.n % 4 == 2:
				self.result += 'aa'
			else:
				self.result += 'a'

	def get_result(self):
		return self.result
Solution = CodeforcesTask805BSolution()
Solution.read_input()
Solution.process_task()
print(Solution.get_result())


import sys
n = int(sys.stdin.readline())
A = ['b', 'a', 'a', 'b']
res = ''
for i in range(n):
	k = i % len(A)
	res = res + A[k]
print(res)


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


def Main():
	n = int(input())
	k = n - 1
	s = 'b' * k + 'a'
	rez = ''
	if n < 4:
		print(s)
	else:
		flag = True
		cnt = 0
		if n % 2 == 0 or n % 2 == 1:
			for i in range(n):
				if flag == True:
					rez += 'b'
					cnt += 1
					if cnt % 2 == 0:
						cnt = 0
						flag = False
				if flag == False:
					rez += 'a'
					cnt += 1
					if cnt % 2 == 0:
						cnt = 0
						flag = True
			zemi = len(rez) - n
			print(rez[:-zemi])
Main()


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


import math
n = int(input())
s = ''
i = 0
sign = 1
for i in range(n):
	if sign <= 2:
		s += 'a'
	else:
		s += 'b'
		if sign == 4:
			sign = 0
	sign += 1
print(s)


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


n = int(input())
answer = 'b'
for i in range(n - 1):
	if answer[i] == 'b' and (i + 1) % 2 == 1:
		answer += 'b'
	if answer[i] == 'b' and (i + 1) % 2 == 0:
		answer += 'a'
	if answer[i] == 'a' and (i + 1) % 2 == 1:
		answer += 'a'
	if answer[i] == 'a' and (i + 1) % 2 == 0:
		answer += 'b'
print(answer)


n = int(input())
s = ''
r = ['b', 'b']
p = 'a'
for i in range(n):
	if r[0] == r[1] == 'a':
		p = 'b'
	if r[0] == r[1] == 'b':
		p = 'a'
	s += p
	(r[0], r[1]) = (r[1], p)
print(s)


n = input()
n = int(n)
to = 0
ta = 0
st = ''
for i in range(n):
	if to < 2:
		st = st + 'a'
		to += 1
	elif to == 2 and ta != 2:
		st = st + 'b'
		ta += 1
	if ta == 2:
		ta = 0
		to = 0
print(st)


word_length = int(input())
answer = ''
for i in range(0, word_length, 32):
	answer += 'aabb'
answer += answer + answer + answer + answer + answer + answer + answer + answer
answer = answer[0:0 + word_length]
print(answer)


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


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


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


def mp():
	return map(int, input().split())

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

def pt(x):
	print(x)

def ip():
	return input()

def it():
	return int(input())

def sl(x):
	return [t for t in x]

def spl(x):
	return x.split()

def aj(liste, item):
	liste.append(item)

def bin(x):
	return '{0:b}'.format(x)

def listring(l):
	return ' '.join([str(x) for x in l])

def ptlist(l):
	print(' '.join([str(x) for x in l]))
n = it()
l = ['a', 'a', 'b', 'b']
s = ''
for i in range(n):
	s += l[i % 4]
pt(s)


TN = 1

def solution():
	n = int(input())
	aabb = 'aabb'
	print(''.join((aabb[i % 4] for i in range(n))))
while TN != 0:
	solution()
	TN -= 1


n = input()
n = int(n)
c = 1
str = 'a'
while n > 1:
	if c < 2:
		str += 'a'
		c = c + 1
	elif c < 4:
		str += 'b'
		c = c + 1
	else:
		c = 0
		n = n + 1
	n = n - 1
print(str)


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


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


x = int(input())
s = ''
flag = False
for i in range(x):
	if i % 2 == 0:
		flag = not flag
	if flag:
		s += 'a'
	else:
		s += 'b'
print(s)


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


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


import itertools as it
t = int(input())
cc = it.cycle('aabb')
print(''.join([next(cc) for _ in range(t)]))


n = int(input())
m = 'aabb'
if n <= len(m):
	print(m[:n])
else:
	w = n // len(m)
	print(w * m + m[:n % len(m)])


n = int(input())
if n == 2:
	print('aa')
elif n == 3:
	print('abb')
elif n == 4:
	print('abba')
else:
	ans = ''
	for i in range(0, n):
		if i % 4 == 0:
			ans += 'a'
		elif i % 4 == 1:
			ans += 'b'
		elif i % 4 == 2:
			ans += 'b'
		else:
			ans += 'a'
	print(ans)


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)


arr = 'bbaa'
n = int(input())
d = n // 4
r = n % 4
for i in range(d):
	print(arr, end='')
for i in range(r):
	print(arr[i], end='')
print()


from math import ceil
n = int(input())
s = ''.join(['abba'] * ceil(n / 4))
if len(s) > n:
	s = s[:n]
print(s)


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 = ''
for i in range(n):
	if i % 4 == 0:
		s += 'b'
	elif i % 4 == 1:
		s += 'b'
	else:
		s += 'a'
print(s)


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])


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


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


n = int(input())
ans = 'abba' * (n // 4)
if n % 4 == 1:
	ans += 'a'
elif n % 4 == 2:
	ans += 'ab'
elif n % 4 == 3:
	ans += 'abb'
print(ans)


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())
ans = 'abba' * 100000
print(ans[: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)


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


n = int(input())
p = str()
for i in range(n):
	if i % 4 <= 1:
		p += 'a'
	else:
		p += 'b'
print(p)


a = int(input())
s = 'aabb' * (a // 4)
p = 'aabb'
s += p[0:a % 4]
print(s)


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


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


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


from sys import stdin, stdout
n = int(stdin.readline())
ans = ''
c = 'a'
for i in range(0, n - 2, 2):
	ans += 2 * c
	if c == 'a':
		c = 'b'
	else:
		c = 'a'
if n % 2:
	ans += c
else:
	ans += 2 * c
stdout.write(ans)


n = int(input())
str1 = ''
i = 0
j = 0
while n > 0:
	if i < 2 and j == 0:
		str1 += 'a'
		i += 1
		if j > 0:
			j -= 1
	elif j != 2:
		str1 += 'b'
		i -= 1
		j += 1
		if j == 2:
			j = 0
	n -= 1
print(str1)


import math
import string

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


n = int(input())
s = ''
for i in range(n):
	if i % 4 == 0 or i % 4 == 1:
		s += 'a'
	if i % 4 == 2 or i % 4 == 3:
		s += 'b'
print(s)


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


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


x = int(input())
i = 0
string = ''
while i < x:
	if i % 4 == 0 or i % 4 == 1:
		string += 'a'
	elif i % 4 == 2 or i % 4 == 3:
		string += 'b'
	i += 1
print(string)


n = int(input().split()[0])
i = 0
count_a = 0
count_b = 0
s = []
while i < n:
	if count_a < 2:
		s.append('a')
		count_a += 1
	elif count_b < 2:
		s.append('b')
		count_b += 1
	else:
		s.append('a')
		count_a = 1
		count_b = 0
	i += 1
print(''.join(s))


def check_palin(txt):
	for idx in range(len(txt) - 2):
		if txt[idx:idx + 3] == ''.join(reversed(txt[idx:idx + 3])):
			raise Exception('idx {idx}'.format(idx=idx))
txt = 'aabb'
n = int(input())
if n == 3:
	print('bba')
elif n == 2:
	print('bb')
elif n == 1:
	print('a')
else:
	text = n // 4 * txt
	while len(text) < n:
		text += txt
	while len(text) > n:
		text = text[0:len(text) - 1]
	if len(text) != n:
		raise Exception()
	check_palin(text)
	print(text)


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)


for _ in range(1):
	n = int(input())
	x = ''
	if n == 1:
		print('a')
	else:
		for i in range(0, n // 2):
			if i & 1:
				x += 'aa'
			else:
				x += 'bb'
		if len(x) == n:
			print(x)
		else:
			a = n - len(x)
			if x[-1] == 'a':
				x += 'b' * a
			else:
				x += 'a' * a
			print(x)


s = ''
for i in range(int(input())):
	if i % 4 < 2:
		s += 'a'
	else:
		s += 'b'
print(s)


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


def three_palindrom(n):
	(k, z) = (1, list())
	while k <= n:
		if k % 4 == 1:
			z.append('a')
		if k % 4 == 2:
			z.append('b')
		if k % 4 == 3:
			z.append('b')
		if k % 4 == 0:
			z.append('a')
		k += 1
	return ''.join(z)
print(three_palindrom(int(input())))


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


n = int(input())
k = 'abba' * n
m = k[0:n]
print(m)


n = int(input())
print('abba' * (n // 4), 'abba'[:n % 4], sep='')


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


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


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))


n = int(input())
s = ''
s1 = 'ab'
s2 = 'ba'
n1 = n // 2
if n % 2 == 1:
	n1 = n1 + 1
for i in range(0, n1):
	if i % 2 == 0:
		s = s + s1
	else:
		s = s + s2
s = s[:n]
print(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)


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


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()


n = int(input())
if n == 1:
	print('a')
elif n == 2:
	print('aa')
elif n == 3:
	print('bba')
else:
	req = n // 4
	if req * 4 == n:
		print('aabb' * req)
	else:
		rem = n - req * 4
		print('aabb' * req, end='')
		if rem == 1:
			print('a')
		elif rem == 2:
			print('aa')
		elif rem == 3:
			print('aab')


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


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


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())
if n == 1:
	print('a')
elif n == 2:
	print('ab')
elif n == 3:
	print('bba')
else:
	s = 'bbaa' * (n // 4)
	if n % 4 == 1:
		s += 'b'
	elif n % 4 == 2:
		s += 'bb'
	elif n % 4 == 3:
		s += 'bba'
	print(s)


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())
k = n // 2
s = n % 2
ch = 'aa'
ch1 = 'bb'
for i in range(0, k):
	if i % 2 == 0:
		print('bb', end='')
	else:
		print('aa', end='')
if s == 1 and k % 2 == 0:
	print('b')
elif s == 1:
	print('a')


import sys

def solve():
	n = int(input())
	if n == 1:
		print('a')
	elif n == 2:
		print('aa')
	else:
		ans = ['a', 'b', 'b'] + [''] * (n - 3)
		for i in range(3, n):
			if ans[i - 2] == 'a':
				ans[i] = 'b'
			else:
				ans[i] = 'a'
		ans = ''.join(ans)
		print(ans)
solve()


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


n = int(input())
s = 'bbaa'
for i in range(n):
	print(s[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])


n = int(input())
if n == 1:
	print('a')
else:
	p = n // 2
	output = ''
	while p:
		if p % 2 == 0:
			output += 'aa'
		else:
			output += 'bb'
		p -= 1
	if n % 2 == 1:
		if output[-1] == 'a':
			output += 'b'
		else:
			output += 'a'
	print(output)


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().strip())
print('abba' * (n // 4) + {0: '', 1: 'a', 2: 'ab', 3: 'abb'}[n % 4])


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)


n = int(input())
d = ['', 'a', 'ab', 'abb']
print('abba' * (n // 4), d[n % 4], sep='')


n = int(input())
patt = 'abba'
gg = ''
if n % 4 == 1:
	gg = 'a'
if n % 4 == 2:
	gg = 'ab'
if n % 4 == 3:
	gg = 'abb'
print(patt * (n // 4) + gg)


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())
j = 1
s = ''
for i in range(n):
	if j == 1 or j == 4:
		s = s + 'a'
	else:
		s = s + 'b'
	if j == 4:
		j = 1
	else:
		j = j + 1
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])


import sys

def main():
	n = int(sys.stdin.readline())
	if n == 1:
		string = 'a'
	else:
		string = 'ab'
		for i in range(n - 2):
			tmp = string[i:i + 2]
			if tmp + 'a' != (tmp + 'a')[::-1]:
				string += 'a'
			elif tmp + 'b' != (tmp + 'b')[::-1]:
				string += 'b'
			else:
				string += 'c'
	print('%s' % string)
main()


a = 'abba'
n = int(input())
k = n // 4
s = n % 4
if s == 1:
	print(a * k + 'a')
elif s == 2:
	print(a * k + 'ab')
elif s == 3:
	print(a * k + 'abb')
else:
	print(a * k)


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)))


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


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='')


def palindrome_three(n):
	if n == 1:
		return 'a'
	elif n == 2:
		return 'ab'
	else:
		times = n // 2
		ans = ''
		for x in range(1, times + 1):
			if x % 2 == 0:
				ans += 'ab'
			else:
				ans += 'ba'
		if n % 2 != 0:
			ans += ans[-1]
		return ans
print(palindrome_three(int(input())))


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())
x = ''
if n == 1:
	print('a')
elif n >= 1:
	for i in range(n // 2):
		if i % 2 == 0:
			x += 'ab'
		else:
			x += 'ba'
	if n % 2 != 0:
		x += x[-1]
	print(x)


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())
l = ['a']
for i in range(1, n):
	if i == 1:
		l.append('b')
	elif l[i - 1] != l[i - 2]:
		l.append(l[i - 1])
	elif l[i - 2] == 'a':
		l.append('b')
	else:
		l.append('a')
print(''.join(l))


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())
if a % 4 == 0:
	print('aabb' * (a // 4))
elif a % 4 == 1:
	print('b' + 'aabb' * (a // 4))
elif a % 4 == 2:
	print('bb' + 'aabb' * (a // 4))
else:
	print('abb' + 'aabb' * (a // 4))


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)


from sys import stdin, stdout
import random
import time

def threepal(n):
	s = [0 for x in range(n)]
	all_choices = ['a', 'b', 'c']
	preferred_choices = ['a', 'b']
	if n == 0:
		return ''
	if n == 1:
		return random.choice(preferred_choices)
	for i in range(2):
		s[i] = random.choice(preferred_choices)
	for i in range(2, int(n / 1)):
		if s[i - 2] == 'a':
			s[i] = 'b'
		else:
			s[i] = 'a'
	return ''.join(s)
n = int(input())
print(threepal(n))

def decrypt(t, n):
	for i in range(2, n):
		if n % i == 0:
			t = t[i - 1::-1] + t[i:]
	t = t[::-1]
	return t

def beautifulString(s):
	letters = set(('a', 'b', 'c'))
	for i in range(len(s)):
		if i < len(s) - 1:
			if s[i] != '?' and s[i] == s[i + 1]:
				return -1
		if s[i] == '?':
			usedLetters = set()
			if i < len(s) - 1:
				usedLetters.add(s[i + 1])
			if i > 0:
				usedLetters.add(s[i - 1])
			remaining = list(letters - usedLetters)
			new_character = random.choice(remaining)
			s[i] = new_character
	return ''.join(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())
if n == 1:
	print('a')
	exit()
elif n == 2:
	print('ab')
	exit()
ans = 'abb'
for i in range(3, n):
	if ans[i - 2] == 'a':
		ans += 'b'
	else:
		ans += 'a'
print(ans)


n = int(input())
s = 'abbaabbaabba'
x = n // 12
r = n % 12
mim = s * x + s[:r]
print(mim)


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)


a = 'abba'
s = -1
for i in range(int(input())):
	s += 1
	if s == 4:
		s = 0
	print(a[s], end='')


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())
pattern = 'abba'
out = ''
if n % 4 == 1:
	out = 'a'
if n % 4 == 2:
	out = 'ab'
if n % 4 == 3:
	out = 'abb'
print(pattern * (n // 4) + out)


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


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)


N = int(input())
loops = N // 4
remainders = N % 4
print('aabb' * loops + 'aabb'[:remainders])


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


n = int(input())
s = 'abba'
for i in range(1, n + 1):
	print(s[i % 4], end='')
print()


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


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


n = int(input())
s = ''

def getch(i):
	if i % 4 == 0 or i % 4 == 1:
		return 'a'
	else:
		return 'b'
for i in range(n):
	s += getch(i)
print(s)


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


n = int(input())
s = 'a'
for i in range(n // 2):
	if i % 2 == 0:
		s = s + 'bb'
	else:
		s = s + 'aa'
if n % 2 != 0:
	print(s)
else:
	s = s.replace(s[0], '', 1)
	print(s)


import sys
read = lambda : sys.stdin.readline().rstrip()
readi = lambda : int(sys.stdin.readline())
writeln = lambda x: sys.stdout.write(str(x) + '\n')
write = lambda x: sys.stdout.write(x)
N = readi()
toggle = False
cnt = 0
for i in range(N):
	if toggle:
		write('a')
	else:
		write('b')
	cnt += 1
	if cnt == 2:
		cnt = 0
		toggle = not toggle
writeln('')


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


import sys
n = int(input())
if n == 1:
	print('b')
	exit(0)
m = n
while n >= 2:
	if n >= 2:
		sys.stdout.write('bb')
		n -= 2
	if n >= 2:
		sys.stdout.write('aa')
		n -= 2
if n == 1:
	if int((m - 1) % 4) == 0:
		sys.stdout.write('b')
	else:
		sys.stdout.write('a')


n = int(input())
if n == 1:
	print('a')
elif n == 2:
	print('aa')
else:
	x = n // 4
	print(x * 'bbaa', end='')
	y = n % 4
	if y == 1:
		print('b')
	elif y == 2:
		print('bb')
	elif y == 3:
		print('bba')


def isPalindrome(i):
	return i == i[::-1]

def checkPalindrome(i):
	if len(i) == 3:
		i[2] = i[1]
	else:
		for t in range(0, len(i) - 2):
			if isPalindrome(i[t:t + 3]):
				if i[t + 2] == 'a':
					i[t + 2] = 'b'
				elif i[t + 2] == 'b':
					i[t + 2] = 'a'
			else:
				continue
n = int(input())
l1 = ['a', 'b', 'c']
l2 = []
if n < 3:
	for i in range(0, n):
		l2.append(l1[i])
	string = ''.join(l2)
else:
	cnt = 0
	for i in range(0, n):
		l2.append(l1[cnt])
		cnt += 1
		if cnt == 2:
			cnt = 0
	l3 = l2
	checkPalindrome(l3)
	string = ''.join(l3)
print(string)


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(''))
s = ''
cnt = 0
if n == 1:
	print('a')
elif n == 2:
	print('ab')
else:
	freq = n // 2
	rem = n & 1
	x = 'aa'
	for i in range(freq):
		s += x
		if x == 'aa':
			x = 'bb'
		else:
			x = 'aa'
	if rem:
		if x == 'aa':
			s += 'a'
		else:
			s += 'b'
	print(s)


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())
if n == 1:
	print('a')
elif n == 2:
	print('ab')
elif n == 3:
	print('bba')
else:
	t = 'abba' * (n // 4)
	if n % 4 == 3:
		print(t + 'abb')
	elif n % 4 == 2:
		print(t + 'ab')
	elif n % 4 == 1:
		print(t + 'a')
	else:
		print(t)


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


n = int(input())
ans = ''
if n % 2:
	ans += 'b'
for i in range(1, n // 2 + 1):
	if i % 2:
		ans += 'aa'
	else:
		ans += 'bb'
print(ans)


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


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


a = int(input())
if a == 3:
	print('bba')
else:
	for i in range(a):
		if i % 4 == 0:
			print('a', end='')
		elif i % 4 == 1:
			print('a', end='')
		elif i % 4 == 2:
			print('b', end='')
		else:
			print('b', end='')


n = int(input())
if n == 1:
	ans = 'a'
elif n == 2:
	ans = 'aa'
elif n == 3:
	ans = 'bba'
else:
	ans = 'aabb' * (n // 4) + 'a' * min(2, n % 4) + 'b' * max(0, n % 4 - 2)
print(ans)


l = int(input())
s = 'bbaa' * ((l + 1) // 2)
print(s[:l])


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())
if n == 1:
	print('b')
elif n == 2:
	print('bb')
else:
	res = 'a'
	n -= 1
	q = n // 4
	r = n % 4
	res += 'bbaa' * q
	if r == 1:
		res += 'b'
	elif r == 2:
		res += 'bb'
	elif r == 3:
		res += 'bba'
	print(res)


n = int(input())
q = n // 4
r = n % 4
s = 'abba' * q + 'abba'[:r]
print(s)


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


n = int(input())
st = n // 4 * 'bbaa'
balam = 'bbaa'
k = n % 4
st += balam[0:k]
print(st)


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


import math
n = int(input())
str1 = 'baab'
if n <= len(str1):
	print(str1[:n])
else:
	k = math.ceil(n / len(str1))
	str1 *= k
	print(str1[:n])


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


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


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())
l = 'bbaa'
print(l * (n // 4) + l[:n % 4])


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())
if n % 2 != 0:
	n = n - 1
	output = 'b'
else:
	output = ''
ch = 'aa'
for i in range(0, n, 2):
	output += ch
	if ch == 'aa':
		ch = 'bb'
	else:
		ch = 'aa'
print(output)


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()


S = 'a'
for i in range(200000):
	if i % 2 == 0:
		S += 'bb'
	else:
		S += 'aa'
print(S[:int(input())])


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())
if n > 3:
	a = 'aa'
	for i in range(2, n):
		if a[i - 2:i] == 'aa':
			a += 'b'
		elif a[i - 2:i] == 'bb':
			a += 'a'
		elif a[i - 2:i] == 'ab':
			a += 'b'
		else:
			a += 'a'
elif n > 2:
	a = 'abb'
elif n > 1:
	a = 'ab'
else:
	a = 'b'
print(a)


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


import sys

def solve():
	n = int(input())
	ans = 'a' + 'bbaa' * 100000
	ans = ans[:n]
	print(ans)
solve()


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


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))


def R():
	return map(int, input().split())

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

def S():
	return str(input())

def L():
	return list(R())
from collections import Counter
import math
import sys
from itertools import permutations
n = I()
if n == 1:
	print('a')
	exit()
s = 'ab'
for i in range(2, n):
	for x in ['a', 'b']:
		if s[i - 2] != x:
			s += x
			break
print(s)


import sys
input = sys.stdin.readline

def li():
	return [int(i) for i in input().rstrip('\n').split(' ')]

def st():
	return input().rstrip('\n')

def val():
	return int(input())
s = 'abbaabbaabba' * int(66667 / 4 + 10)
print(s[:val()])


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()


n = int(input())
(f1, f2, f3, f4) = ('b', 'bb', 'bba', 'bbaa')
if int(n % 4) == 1:
	print(f4 * int(n / 4) + f1)
elif int(n % 4) == 2:
	print(f4 * int(n / 4) + f2)
elif int(n % 4) == 3:
	print(f4 * int(n / 4) + f3)
else:
	print(f4 * int(n / 4))


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])


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


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


n = int(input())
if n == 1:
	print('a')
	exit()
elif n == 2:
	print('aa')
	exit()
elif n == 3:
	print('bba')
	exit()
elif n % 4 == 0:
	print('aabb' * (n // 4))
	exit()
else:
	s1 = 'aabb' * (n // 4)
	x = n % 4
	s2 = ''
	if x >= 2:
		for i in range(x // 2):
			if i % 2 == 0:
				s2 += 'aa'
			else:
				s2 += 'bb'
		if len(s2) != x:
			if s2[-1] == 'a':
				s2 += 'b'
			else:
				s2 += 'a'
	else:
		s2 += 'a'
print(s1 + s2)


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


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])