albus就是要第一个出场

题目描述

已知一个长度为$n$的正整数序列$A$(下标从$1$开始), 令 $S = \{ x | 1 \le x \le n \}$, $S$ 的幂集$2^S$定义为 $S$ 所有子集构成的集合。定义映射 $f : 2^S \to Z,f(\emptyset) = 0,f(T) = \mathrm{XOR}\{A_t\}, (t \in T)$ 。 现在albus把$2^S$中每个集合的f值计算出来, 从小到大排成一行, 记为序列$B$(下标从$1$开始)。 给定一个数, 那么这个数在序列$B$中第$1$次出现时的下标是多少呢?

输入输出格式

输入格式


第一行一个数$n$, 为序列$A$的长度。接下来一行$n$个数, 为序列$A$, 用空格隔开。最后一个数Q, 为给定的数.

输出格式


共一行, 一个整数, 为$Q$在序列$B$中第一次出现时的下标模$10086$的值.

输入输出样例

输入样例 #1

3
1 2 3
1

输出样例 #1

3

说明

【样例解释】 N = 3, A = [1 2 3] S = {1, 2, 3} 2^S = {空, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}} f(空) = 0 f({1}) = 1 f({2}) = 2 f({3}) = 3 f({1, 2}) = 1 xor 2 = 3 f({1, 3}) = 1 xor 3 = 2 f({2, 3}) = 2 xor 3 = 1 f({1, 2, 3}) = 0 所以 B = [0, 0, 1, 1, 2, 2, 3, 3] 【数据范围】 1 <= N <= 10,0000 其他所有输入均不超过10^9