#include<cstdio>
#include<cstring>
#include<string>
#define int long long
#define WR WinterRain
using namespace std;
const int WR=100100,mod=10086;
int n,ans,q;
int stk[WR],cnt;
int rnk;
int base[WR],val[WR];
int read(){
int s=0,w=1;
char ch=getchar();
while(ch>'9'||ch<'0'){
if(ch=='-') w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
return s*w;
}
int quick_pow(int a,int b){
int bse=a,res=1;
while(b){
if(b&1) res=res*bse%mod;
bse=bse*bse%mod;
b>>=1;
}
return res;
}
void insrt(int x){
for(int i=32;i>=0;i--){
if((x>>i)&1){
if(!base[i]){
base[i]=x;
return;
}else{
x^=base[i];
}
}
}
}
signed main(){
n=read();
for(int i=1;i<=n;i++){
int x=read();
insrt(x);
}
q=read();
for(int i=0;i<=32;i++){
if(base[i]) stk[++cnt]=i;
}
for(int i=1;i<=cnt;i++){
//printf("%lld ",stk[i]);
if((q>>stk[i])&1) rnk=(rnk+quick_pow(2,i))%mod;
}
printf("%lld\n",(rnk*quick_pow(2,n-cnt-1)%mod+1)%mod);
return 0;
}
RT