#P1163E. Magical Permutation

    ID: 4512 Type: RemoteJudge 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 9 Uploaded By: Tags>bitmasksbrute forceconstructive algorithmsdata structuresgraphsmath*2400

Magical Permutation

Description

Kuro has just learned about permutations and he is really excited to create a new permutation type. He has chosen nn distinct positive integers and put all of them in a set SS. Now he defines a magical permutation to be:

  • A permutation of integers from 00 to 2x12^x - 1, where xx is a non-negative integer.
  • The bitwise xor of any two consecutive elements in the permutation is an element in SS.

Since Kuro is really excited about magical permutations, he wants to create the longest magical permutation possible. In other words, he wants to find the largest non-negative integer xx such that there is a magical permutation of integers from 00 to 2x12^x - 1. Since he is a newbie in the subject, he wants you to help him find this value of xx and also the magical permutation for that xx.

The first line contains the integer nn (1n21051 \leq n \leq 2 \cdot 10^5) — the number of elements in the set SS.

The next line contains nn distinct integers S1,S2,,SnS_1, S_2, \ldots, S_n (1Si21051 \leq S_i \leq 2 \cdot 10^5) — the elements in the set SS.

In the first line print the largest non-negative integer xx, such that there is a magical permutation of integers from 00 to 2x12^x - 1.

Then print 2x2^x integers describing a magical permutation of integers from 00 to 2x12^x - 1. If there are multiple such magical permutations, print any of them.

Input

The first line contains the integer nn (1n21051 \leq n \leq 2 \cdot 10^5) — the number of elements in the set SS.

The next line contains nn distinct integers S1,S2,,SnS_1, S_2, \ldots, S_n (1Si21051 \leq S_i \leq 2 \cdot 10^5) — the elements in the set SS.

Output

In the first line print the largest non-negative integer xx, such that there is a magical permutation of integers from 00 to 2x12^x - 1.

Then print 2x2^x integers describing a magical permutation of integers from 00 to 2x12^x - 1. If there are multiple such magical permutations, print any of them.

Sample Input 1

3
1 2 3

Sample Output 1

2
0 1 3 2

Sample Input 2

2
2 3

Sample Output 2

2
0 2 1 3

Sample Input 3

4
1 2 3 4

Sample Output 3

3
0 1 3 2 6 7 5 4

Sample Input 4

2
2 4

Sample Output 4

0
0

Sample Input 5

1
20

Sample Output 5

0
0

Sample Input 6

1
1

Sample Output 6

1
0 1

Note

In the first example, 0,1,3,20, 1, 3, 2 is a magical permutation since:

  • 01=1S0 \oplus 1 = 1 \in S
  • 13=2S1 \oplus 3 = 2 \in S
  • 32=1S3 \oplus 2 = 1 \in S

Where \oplus denotes bitwise xor operation.