只WA#28
#include<cstdio>
#include<algorithm>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
namespace fast_input{
template<typename T>void read(T &x){
x=0;
char c=getchar();
while(c<'0'||c>'9')c=getchar();
while(c>='0'&&c<='9'){
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
}
}
using namespace fast_input;
using namespace std;
const int N=1e5+5;
int lowbit(int c){
return c&-c;
}
int n,a[N],sum,p=114514,aux1,aux2,tot1,tot2;
int main(){
read(n);
rep(i,1,n)read(a[i]);
if(n&1^1){
printf("998244353\n");
for(int i=1;i<=n;i+=2)printf("01");
return 0;
}
rep(i,1,n)p=min(p,lowbit(a[i]));
rep(i,1,n)sum+=a[i]/p;
if(sum&1)printf("-1");
else{
printf("%d\n",p<<1);
rep(i,1,n)a[i]=a[i]/p&1?1:2;
rep(i,1,n){
if(a[i]==1)tot1++;
else tot2++;
}
aux1=tot1,aux2=tot2;
rep(i,1,n){
if(a[i]==1){
if(tot1-aux1<2)printf("0");
else printf("%d",aux1&1);
aux1--;
}
else printf("%d",aux2&1),aux2--;
}
}
return 0;
}