'''
#1
n,m = map(int, input().split())
sp = []
for i in range(n):
    a,b = map(int, input().split())
    sp.append(m*(a/b))
print(min(sp))
#2
n, b, d = map(int, input().split())
a = list(map(int, input().split()))
summ = 0
k = 0
for i in range(n):
    if a[i] <= b:
        summ += a[i]
        if summ > d:
            k += 1
            summ = 0
print(k)
#3
n = int(input())
a = input().lower()
f, s = 0, 0
sf = a.count('sf')
fs = a.count('fs')
if sf > fs:
    print('YES')
else:
    print('NO')
#4
n = int(input())
for i in range(n):
    name, before, after = map(str, input().split())
    if int(before) >= 2400 and int(after)-int(before) > 0:
        print('YES')
        break
else:
    print('NO')
#5
x = int(input())
k = 0
if x % 4 == 1:
    print(0, 'A')
elif x % 4 == 3:
    print(2, 'A')
elif x % 4 == 2:
    print(1, 'B')
elif x % 4 == 0:
    print(1, 'A')
#6
t = int(input())
for i in range(t):
    k = 0
    s, a, b, c = map(int, input().split())
    ac = a*c
    kol = s//ac
    if s >= ac:
        k = (a+b)*kol + (s-kol*ac)//c
        print(k)
    else:
        print(s//c)
#7
s = input()
t = input()
pos = 0
for i in range(len(t)):
    if s[pos] == t[i]:
        pos += 1
print(pos+1)
#8
n, k = map(int,input().split())
a = list(map(int,input().split()))
aria, bran, day = 0, 0, 0
while bran < k and day < n:
    aria += a[day]
    tmp = min(8, aria)
    aria -= tmp
    bran += tmp
    day += 1
if bran >= k:
    print(day)
else:
    print(-1)
#9
q = int(input())
for _ in range(q):
    n = int(input())
    p = list(map(int,input().split()))
    c = p.index(1)
    po = True
    protiv = True
    k = 1
    for i in range(c, n):
        if p[i] != k:
            po = False
            break
        else:
            k += 1
    for i in range(0, c):
        if p[i] != k:
            po = False
            break
        else:
            k += 1
    j = 1
    for i in range(c, -1, -1):
        if p[i] != j:
            protiv = False
            break
        else:
            j += 1
    for i in range(n-1 , c, -1):
        if p[i] != j:
            protiv = False
            break
        else:
            j += 1
    if po == True or protiv == True:
        print('YES')
    else:
        print('NO')
#9.2
q = int(input())
for _ in range(q):
    n = int(input())
    p = list(map(int,input().split()))
    c = p.index(1)
    a = p[c:] + p[:c] #if po
    b = p[c+1:] + p[:c+1] # if protiv
    if a == list(range(1, n+1)) or b == list(range(n, 0, -1)):
        print('YES')
    else:
        print('NO')
'''        
#10

n = int(input())
fib = []
a = 0
b = 1
for i in range(n):
    s = a+b
    fib.append(s)
    b += a
    a += s
print(fib)
name = ''
for i in range(n):
    if i in fib:
        name += 'O'
    else:
        name += 'o'
print(name)









