There are N empty boxes arranged in a row from left to right. The integer i is written on the i-th box from the left (1 \leq i \leq N).  For each of these boxes, Snuke can choose either to put a ball in it or to put nothing in it.  We say a set of choices to put a ball or not in the boxes is good when the following condition is satisfied:    * For every integer i between 1 and N (inclusive), the total number of balls contained in the boxes with multiples of i written on them is congruent to a_i modulo 2.  Does there exist a good set of choices? If the answer is yes, find one good set of choices.
def solve(n, a):
    b = [-1] * n
    for i in range(n, 0, -1):
        cnt = 0
        for j in range(2*i, n+1, i):
            cnt += b[j-1]
        p = cnt % 2
        b[i-1] = p ^ a[i-1]
    print(len(b))
    print(" ".join(map(str, b)))

n = int(input())
a = list(map(int, input().split()))
solve(n, a)
def solve(n, a):
    b = [-1] * n
    for i in range(n, 0, -1):
        cnt = 0
        for j in range(2*i, n+1, i):
            cnt += b[j-1]
        p = cnt % 2
        b[i-1] = p ^ a[i-1]
    res = []
    for i, v in enumerate(b):
        if v > 0:
            res.append(i+1)
    m = len(res)
    print(m)
    if m > 0:
        print(" ".join(map(str, res)))

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