#include<cstdio>
#include<cstring>
int n;
void print2(int x)
{
printf("%07d=",x);
for (int i=n-1;i>=0;i--)
printf("%d",(x>>i)&1);
puts("");
}
int lowbit(int x)
{
return x&(-x);
}
int main()
{
freopen("test2.txt","r",stdin);
freopen("gray.in","w",stdout);
while (~scanf("%d",&n))
{
printf("%d\n",1<<n);
int t,x=0,f=0,lim=1<<n;
do
{
printf("%d\n",x);
// print2(x);
t=f>0?(lowbit(x)<<1):1;
x^=t,f^=1;
}while (x<lim);
puts("");
}
return 0;
}
#include<cstdio>
#include<cstring>
int ok(int t)
{
int s=t&(-t);
return (s!=t);
}
int main()
{
int n;
// freopen("gray.in","r",stdin);
// freopen("gray.out","w",stdout);
while (~scanf("%d",&n))
{
int x,y,flag=1;
scanf("%d",&x);
for (int i=1;i<n;i++)
{
scanf("%d",&y);
x^=y;
if (ok(x))
{
flag=0;
}
x=y;
}
printf("%s\n",(flag>0?"Yes":"No"));
}
return 0;
}