# 長さNの配列Aが与えられる
# ここで、1以上N-1以下の整数jを選択して
# {A_1, A_2, ..., A_j}と{A_j+1, A_j+2, ..., A_N}の
# 2つの部分列に分割することを考える
# 以下の条件を満足するjを昇順に列挙せよ
#  * 分割された部分列について、どちらの部分列にも同じ要素が2つ以上含まれない

import sys
import itertools
import time
from math import radians, sin, cos, tan, sqrt
from collections import deque

def input():
    return sys.stdin.readline().replace('\n','')
sys.setrecursionlimit(1000000)
md1 = 998244353
md2 = 10 ** 9 + 7

N = int(input())
A = list(map(int, input().split()))

dct = {}
flag2 = True #同じ要素の個数が2個以下
flag3 = False #同じ要素が存在する
for i in range(0, N):
    if A[i] not in dct:
        dct[A[i]] = []
    dct[A[i]].append(i+1)
    if flag3:
        if len(dct[A[i]]) > 2:
            flag2 = False
            break
    else:
        if len(dct[A[i]]) > 1:
            flag3 = True

if flag3:
    if not flag2:
        print(0)
        print('')
    else:
        keylist = list(dct.keys())
        left = 1
        right = N
        for i in range(0, len(keylist)):
            if len(dct[keylist[i]]) == 2:
                dct[keylist[i]].sort()
                left = max(left, dct[keylist[i]][0])
                right = min(right, dct[keylist[i]][1])
        if left < right:
            ans = []
            for i in range(left, right):
                ans.append(i)
            print(len(ans))
            print(' '.join(map(str, ans)))
        else:
            print(0)
            print('')
else:
    print(N-1)
    ans = []
    for i in range(1, N):
        ans.append(i)
    print(' '.join(map(str, ans)))