n = int(input())

a = list(map(int, input().split()))

b = [0] * n

# 後ろからボールの有無を決定

for i in range(n - 1, -1, -1):

    cnt = 0

    for j in range(2 * (i + 1), n + 1, i + 1):

        cnt += b[j - 1]

    # 条件と異なるならボールを投入

    if cnt % 2 != a[i]:

        b[i] = 1

m = b.count(1)

print(m)

for i in range(n):

    if b[i]:

        print(i + 1, end=' ')

n = int(input())

a = list(map(int, input().split()))

b = [0] * (n + 1)

# 後ろからボールの有無を決定

for i in range(n, 0, -1):

    cnt = sum(b[::i])

    # 条件と異なるならボールを投入

    if cnt % 2 != a[i - 1]:

        b[i] = 1

m = sum(b)

print(m)

for i in range(1, n + 1):

    if b[i]:

        print(i, end=' ')

n = int(input())
a = list(map(int, input().split()))
b = [0] * n
# 後ろからボールの有無を決定
for i in range(n - 1, -1, -1):
    cnt = 0
    for j in range(2 * (i + 1), n + 1, i + 1):
        cnt += b[j - 1]
    # 条件と異なるならボールを投入
    if cnt % 2 != a[i]:
        b[i] = 1
m = b.count(1)
print(m)
for i in range(n):
    if b[i]:
        print(i + 1, end=" ")

n = int(input())
a = list(map(int, input().split()))
b = [0] * (n + 1)
# 後ろからボールの有無を決定
for i in range(n, 0, -1):
    cnt = sum(b[::i])
    # 条件と異なるならボールを投入
    if cnt % 2 != a[i - 1]:
        b[i] = 1
m = sum(b)
print(m)
for i in range(1, n + 1):
    if b[i]:
        print(i, end=" ")

-b = [0] * n +b = [0] * (n + 1) -for i in range(n - 1, -1, -1): -    cnt = 0 -    for j in range(2 * (i + 1), n + 1, i + 1): -        cnt += b[j - 1] +for i in range(n, 0, -1): +    cnt = sum(b[::i]) -    if cnt % 2 != a[i]: +    if cnt % 2 != a[i - 1]: -m = b.count(1) +m = sum(b) -for i in range(n): +for i in range(1, n + 1): -        print(i + 1, end=" ") +        print(i, end=" ")