/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static int[] pai = new int[34];
static int count = 0;
// static HashSet<String> set = new HashSet<>();
{
// your code goes here
atama();
// System.out.println(set.size());
}
static void atama() {
for (int i = 0; i < 34; i++) {
pai[i] -= 2;
kotsu(4, 0);
juntsu(4, 0);
pai[i] += 2;
}
}
static void kotsu(int rem, int p) {
if (rem == 0) {
count++;
// StringBuilder sb = new StringBuilder();
// for (int i = 0; i < 34; i++) sb.append(pai[i]);
// set.add(sb.toString());
return;
}
for (int i = p; i < 34; i++) {
if (pai[i] < 4) continue;
pai[i] -= 3;
kotsu(rem - 1, i);
juntsu(rem - 1, 0);
pai[i] += 3;
}
}
static void juntsu(int rem, int p) {
if (rem == 0) {
count++;
// StringBuilder sb = new StringBuilder();
// for (int i = 0; i < 34; i++) sb.append(pai[i]);
// set.add(sb.toString());
return;
}
for (int i = p; i < 27; i++) {
if (i % 9 > 6) continue;
if (pai[i] == 0) continue;
if (pai[i+1] == 0) continue;
if (pai[i+2] == 0) continue;
pai[i]--;
pai[i+1]--;
pai[i+2]--;
juntsu(rem - 1, i);
pai[i]++;
pai[i+1]++;
pai[i+2]++;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJc3RhdGljIGludFtdIHBhaSA9IG5ldyBpbnRbMzRdOwoJc3RhdGljIGludCBjb3VudCA9IDA7CgkvLyBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IHNldCA9IG5ldyBIYXNoU2V0PD4oKTsKCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCUFycmF5cy5maWxsKHBhaSwgNCk7CgkJYXRhbWEoKTsKCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oY291bnQpOwoJCS8vIFN5c3RlbS5vdXQucHJpbnRsbihzZXQuc2l6ZSgpKTsKCX0KCQoJc3RhdGljIHZvaWQgYXRhbWEoKSB7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCAzNDsgaSsrKSB7CgkJCXBhaVtpXSAtPSAyOwoJCQlrb3RzdSg0LCAwKTsKCQkJanVudHN1KDQsIDApOwoJCQlwYWlbaV0gKz0gMjsKCQl9Cgl9CgkKCXN0YXRpYyB2b2lkIGtvdHN1KGludCByZW0sIGludCBwKSB7CgkJaWYgKHJlbSA9PSAwKSB7CgkJCWNvdW50Kys7CgkJCS8vIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwoJCQkvLyBmb3IgKGludCBpID0gMDsgaSA8IDM0OyBpKyspIHNiLmFwcGVuZChwYWlbaV0pOwoJCQkvLyBzZXQuYWRkKHNiLnRvU3RyaW5nKCkpOwoJCQlyZXR1cm47CgkJfQoJCWZvciAoaW50IGkgPSBwOyBpIDwgMzQ7IGkrKykgewoJCQlpZiAocGFpW2ldIDwgNCkgY29udGludWU7CgkJCXBhaVtpXSAtPSAzOwoJCQlrb3RzdShyZW0gLSAxLCBpKTsKCQkJanVudHN1KHJlbSAtIDEsIDApOwoJCQlwYWlbaV0gKz0gMzsKCQl9Cgl9CgkKCXN0YXRpYyB2b2lkIGp1bnRzdShpbnQgcmVtLCBpbnQgcCkgewoJCWlmIChyZW0gPT0gMCkgewoJCQljb3VudCsrOwoJCQkvLyBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKCQkJLy8gZm9yIChpbnQgaSA9IDA7IGkgPCAzNDsgaSsrKSBzYi5hcHBlbmQocGFpW2ldKTsKCQkJLy8gc2V0LmFkZChzYi50b1N0cmluZygpKTsKCQkJcmV0dXJuOwoJCX0KCQlmb3IgKGludCBpID0gcDsgaSA8IDI3OyBpKyspIHsKCQkJaWYgKGkgJSA5ID4gNikgY29udGludWU7CgkJCWlmIChwYWlbaV0gPT0gMCkgY29udGludWU7CgkJCWlmIChwYWlbaSsxXSA9PSAwKSBjb250aW51ZTsKCQkJaWYgKHBhaVtpKzJdID09IDApIGNvbnRpbnVlOwoJCQlwYWlbaV0tLTsKCQkJcGFpW2krMV0tLTsKCQkJcGFpW2krMl0tLTsKCQkJanVudHN1KHJlbSAtIDEsIGkpOwoJCQlwYWlbaV0rKzsKCQkJcGFpW2krMV0rKzsKCQkJcGFpW2krMl0rKzsKCQl9Cgl9Cn0=