Number Game
题号:NC216160
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

MianKing and GreenKing are playing a game. Initially there are integers on the blackboard and a set .

MianKing and GreenKing take turns to operate and MianKing will operate first.

In each operation the player can choose an integer on the blackboard which is not a Bad Number(Will be defined below), then choose an integer in

The player should guaranteed that and if there is no y that satisfies in the set , the player cannot choose this

Then the player will replace with on the blackboard.

If a player cannot do any operations, the player loses this game.

GreenKing is a bad woman, she wants to choose a subset of size from to ensure that she can win the game(Assuming that both players are smart enough). Now you need to help her calculate how many subset of satisfies the above conditions.

The answer may be very large, so you only need to output answer mod .

We call a number is a Bad Number, if and only if it has an even number of 1 in the binary representation.

For example, are all Bad Numbers and are not Bad Numbers.

输入描述:

The first line has three integers 

The second line has distinct integers denotes the set .








输出描述:

Output the answer mod .
示例1

输入

复制
5 2 1
2

输出

复制
6
示例2

输入

复制
1000 100 10
1 2 3 4 5 6 7 8 10 11

输出

复制
896262428