Problem:
C: 一致

問題

長さ $N$ の数列 $a_i$ が与えられる。
次の条件を満たす整数 $K (1 \le K \le N)$ を全て出力せよ。

条件:
$a_1, \cdots, a_K$ をうまく並び替えると $a_{N-K+1}, \cdots, a_N$ と一致する。

制約

$1 \le N \le 10^5$

$1 \le a_i \le 10^9$

入力は全て整数

入力:

$N$

$a_1 \cdots a_N$

出力:

条件を満たす $K$ を昇順に空白区切りで出力せよ。また末尾に改行を出力せよ。

サンプル

サンプル入力 1

8
5 2 4 9 4 9 2 5

サンプル出力 1

1 2 4 6 7 8

サンプル入力 2

3
5 7 5

サンプル出力 2

1 2 3

サンプル入力 3

9
118 118 97 116 97 97 114 110 101

サンプル出力 3

9

Solution in Ruby (judge verdict: Wrong Answer)

#!/usr/bin/ruby
n,*a=$<.read.split.map &:to_i
X=10**9+3
Y=10**9+7
#h1=Hash.new 0
#h2=Hash.new 0
h1=h2=0
puts (1..n).select{|i|
	#h1[a[i-1]]+=1
	#h2[a[n-i]]+=1
	h1=(h1*X+a[i-1])%Y
	h2=(h2*X+a[n-i])%Y
	h1==h2
}*' '