#include <iostream>
using namespace std;
int f[3][3];
int u[3][3];
int d[3][3];
int l[3][3];
int r[3][3];
int b[3][3];
int cf[3][3];
int cu[3][3];
int cd[3][3];
int cl[3][3];
int cr[3][3];
int cb[3][3];
//f-front;u-up;d-down;l-left;r-right;b-back;//
//c-copy,在颜色交换时用//
//anticlockwise 逆时针的//
void input_data()//输入六面颜色数据
{
int i=0,j=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>f[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>u[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>d[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>l[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>r[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
}
bool check_input_data()
{
int c[7];
int i=0,j=0;
for(i=1;i<=6;i++)
c[i]=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
c[f[i][j]]++;
c[u[i][j]]++;
c[d[i][j]]++;
c[l[i][j]]++;
c[r[i][j]]++;
c[b[i][j]]++;
}
for(i=1;i<=6;i++)
if(c[i]!=9)
return false;//检验六中颜色是否都占了九个块//
if(f[1][1]*u[1][1]*d[1][1]*l[1][1]*r[1][1]*b[1][1]!=720||f[1][1]+u[1][1]+d[1][1]+l[1][1]+r[1][1]+b[1][1]!=21)
using namespace std;
int f[3][3];
int u[3][3];
int d[3][3];
int l[3][3];
int r[3][3];
int b[3][3];
int cf[3][3];
int cu[3][3];
int cd[3][3];
int cl[3][3];
int cr[3][3];
int cb[3][3];
//f-front;u-up;d-down;l-left;r-right;b-back;//
//c-copy,在颜色交换时用//
//anticlockwise 逆时针的//
void input_data()//输入六面颜色数据
{
int i=0,j=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>f[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>u[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>d[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>l[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>r[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
}
bool check_input_data()
{
int c[7];
int i=0,j=0;
for(i=1;i<=6;i++)
c[i]=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
c[f[i][j]]++;
c[u[i][j]]++;
c[d[i][j]]++;
c[l[i][j]]++;
c[r[i][j]]++;
c[b[i][j]]++;
}
for(i=1;i<=6;i++)
if(c[i]!=9)
return false;//检验六中颜色是否都占了九个块//
if(f[1][1]*u[1][1]*d[1][1]*l[1][1]*r[1][1]*b[1][1]!=720||f[1][1]+u[1][1]+d[1][1]+l[1][1]+r[1][1]+b[1][1]!=21)










