問題文
長さ N の非負整数列 A=(A1,A2,ldots,AN) が与えられます。
非負整数列 (a1,a2,ldots,an) の operatornamexor を、すべての非負整数 j について次の条件を満たすような整数 X と定義します。
- a1,ldots,an のうち二進法で表したとき 2j の位が 1 であるものが奇数個であるとき、かつそのときに限り 2j の位が 1 である
非負整数の集合 $\\lbrace s _ 1,s _ 2,\\ldots,s _ k\\rbrace\\ (s _ 1\\lt s _ 2\\lt\\cdots\\lt s _ k)$ を、A の連続とは限らない(空でもよい)部分列の operatornamexor として得られる整数の集合とします。
整数 L,R が与えられるので、sL,sL+1,ldots,sR をこの順に出力してください。
制約
- 1leqNleq2times105
- 0leqAilt260(1leqileqN)
- 1leqLleqRleqk
- R−Lleq2times105
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N L R
A1 A2 ldots AN
出力
si(LleqileqR) を i の昇順に空白区切りで出力せよ。
入力例 1
4 1 8
2 21 17 21
出力例 1
0 2 4 6 17 19 21 23
A の連続とは限らない部分列としてありえる列は $(),(2),(17),(21),(2,17),(2,21),(17,21),(21,17),(21,21),(2,17,21),(2,21,17),(2,21,21),(21,17,21),(2,21,17,21)$ の 14 種類です。 それぞれ、 operatornamexor は次のようになります。
- 空列の operatornamexor は 0 です。
- (2) の operatornamexor は 2 です。
- (17) の operatornamexor は 17 です。
- (21) の operatornamexor は 21 です。
- (2,17) の operatornamexor は 19 です。
- (2,21) の operatornamexor は 23 です。
- (17,21) の operatornamexor は 4 です。
- (21,17) の operatornamexor は 4 です。
- (21,21) の operatornamexor は 0 です。
- (2,17,21) の operatornamexor は 6 です。
- (2,21,17) の operatornamexor は 6 です。
- (2,21,21) の operatornamexor は 2 です。
- (21,17,21) の operatornamexor は 17 です。
- (2,21,17,21) の operatornamexor は 19 です。
よって、A の部分列のビットごとの排他的論理和としてありえる値の集合は lbrace0,2,4,6,17,19,21,23rbrace です。
入力例 2
4 3 7
2 21 17 21
出力例 2
4 6 17 19 21
入力例 3
5 1 1
0 0 0 0 0
出力例 3
0
入力例 4
6 21 21
88 44 82 110 121 80
出力例 4
41
入力例 5
12 26 48
19629557415 14220078328 11340722069 30701452525 22333517481 720413777 11883028647 20926361028 24376768297 720413777 27999065315 13558621130
出力例 5
13558621130 14220078328 14586054825 15518998043 15970974282 16379590008 17091531049 17412316967 17836964726 18263536708 18965057557 19629557415 20282860278 20926361028 21302757781 21908867832 22333517481 22893781403 23595304394 23723463544 24376768297 24885524507 25261923402
入力や出力が 32operatornamebit 整数に収まらない場合があることに注意してください。