#include<stdio.h>
void show(int *x)
{
for(int i=0;i<10;i++)
if(x[i]>0)
printf("%c",i+'A');
printf("\n");
}
int judege(int *x)
{
int t1=x[0]==0||x[1]==1;
int t2=x[2]==1||x[3]==0;
int t3=x[0]+x[2]<=1;
int t4=x[1]+x[3]==1;
int t5=x[3]+x[4]+x[5]+x[6]+x[7]>=2;
int t6=(x[2]+x[6]==0)||(x[2]+x[6]==2);
int t7=x[2]+x[4]+x[6]+x[8]==2;
int t8=x[4]==0||(x[5]+x[6]==2);
int t9=x[5]==0||(x[6]+x[7]==0);
int t10=(x[8]+x[9]>0)||x[7]==1;
return t1&&t2&&t3&&t4&&t5&&t6&&t7&&t8&&t9&&t10;
}
void f(int *x,int n)
{
if(n>=10)
{
if(judege(x))
show(x);
return;
}
x[n]=0;
f(x,n+1);
x[n]=1;
f(x,n+1);
}
int main(int argc ,char *argv[])
{
int x[]={0,0,0,0,0,0,0,0,0,0};
f(x,0);
return 0;
}
void show(int *x)
{
for(int i=0;i<10;i++)
if(x[i]>0)
printf("%c",i+'A');
printf("\n");
}
int judege(int *x)
{
int t1=x[0]==0||x[1]==1;
int t2=x[2]==1||x[3]==0;
int t3=x[0]+x[2]<=1;
int t4=x[1]+x[3]==1;
int t5=x[3]+x[4]+x[5]+x[6]+x[7]>=2;
int t6=(x[2]+x[6]==0)||(x[2]+x[6]==2);
int t7=x[2]+x[4]+x[6]+x[8]==2;
int t8=x[4]==0||(x[5]+x[6]==2);
int t9=x[5]==0||(x[6]+x[7]==0);
int t10=(x[8]+x[9]>0)||x[7]==1;
return t1&&t2&&t3&&t4&&t5&&t6&&t7&&t8&&t9&&t10;
}
void f(int *x,int n)
{
if(n>=10)
{
if(judege(x))
show(x);
return;
}
x[n]=0;
f(x,n+1);
x[n]=1;
f(x,n+1);
}
int main(int argc ,char *argv[])
{
int x[]={0,0,0,0,0,0,0,0,0,0};
f(x,0);
return 0;
}