import java.util.HashMap;
public class T2_磁砖样式 {
static int[][] array = new int[3][10];
static int sum = 0;
static HashMap<String, Integer> map = new HashMap<>();
static boolean check() {
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array[0].length-1; j++) {
int a = array[i][j];
int b = array[i+1][j];
int c = array[i][j+1];
int d = array[i+1][j+1];
if(a==b&&c==d&&a==c) {
return false;
}
}
}
String result = "";
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
result += array[i][j];
}
}
if(map.get(result)!=null) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
System.out.print(array[i][j]+",");
}
System.out.println();
}
System.out.println("*******************************");
}
map.put(result, 1);
return true;
}
static void f(int num,int y,int x) {
if(num == (array.length*array[0].length)/2) {
if(check()) {
sum++;
}
return;
}
if(x == array[0].length) {
y = y+1;
x = 0;
}
if(y == array.length) {
return;
}
if(array[y][x] != 0) {
f(num,y,x+1);
return;
}
for (int k = 1; k <= 2; k++) {
if(x <= array[0].length -2) {
if(array[y][x+1] == 0) {
array[y][x] = k;
array[y][x+1] = k;
f(num+1,y,x+2);
array[y][x] = 0;
array[y][x+1] = 0;
}
}
if(y <= array.length -2) {
if(array[y+1][x] == 0) {
array[y][x] = k;
array[y+1][x] = k;
f(num+1,y,x+1);
array[y][x] = 0;
array[y+1][x] = 0;
}
}
}
}
public static void main(String[] args) {
f(0,0,0);
System.out.println(sum);
System.out.println(map.size());
}
}