/* 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[9];
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 < 9; 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 < 9; i++) sb.append(pai[i]);
set.add(sb.toString());
return;
}
for (int i = p; i < 9; 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 < 9; i++) sb.append(pai[i]);
set.add(sb.toString());
return;
}
for (int i = p; i < 7; i++) {
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]++;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJc3RhdGljIGludFtdIHBhaSA9IG5ldyBpbnRbOV07CglzdGF0aWMgaW50IGNvdW50ID0gMDsKCXN0YXRpYyBIYXNoU2V0PFN0cmluZz4gc2V0ID0gbmV3IEhhc2hTZXQ8PigpOwoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJQXJyYXlzLmZpbGwocGFpLCA0KTsKCQlhdGFtYSgpOwoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbihjb3VudCk7CgkJU3lzdGVtLm91dC5wcmludGxuKHNldC5zaXplKCkpOwoJfQoJCglzdGF0aWMgdm9pZCBhdGFtYSgpIHsKCQlmb3IgKGludCBpID0gMDsgaSA8IDk7IGkrKykgewoJCQlwYWlbaV0gLT0gMjsKCQkJa290c3UoNCwgMCk7CgkJCWp1bnRzdSg0LCAwKTsKCQkJcGFpW2ldICs9IDI7CgkJfQoJfQoJCglzdGF0aWMgdm9pZCBrb3RzdShpbnQgcmVtLCBpbnQgcCkgewoJCWlmIChyZW0gPT0gMCkgewoJCQljb3VudCsrOwoJCQlTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKCQkJZm9yIChpbnQgaSA9IDA7IGkgPCA5OyBpKyspIHNiLmFwcGVuZChwYWlbaV0pOwoJCQlzZXQuYWRkKHNiLnRvU3RyaW5nKCkpOwoJCQlyZXR1cm47CgkJfQoJCWZvciAoaW50IGkgPSBwOyBpIDwgOTsgaSsrKSB7CgkJCWlmIChwYWlbaV0gPCA0KSBjb250aW51ZTsKCQkJcGFpW2ldIC09IDM7CgkJCWtvdHN1KHJlbSAtIDEsIGkpOwoJCQlqdW50c3UocmVtIC0gMSwgMCk7CgkJCXBhaVtpXSArPSAzOwoJCX0KCX0KCQoJc3RhdGljIHZvaWQganVudHN1KGludCByZW0sIGludCBwKSB7CgkJaWYgKHJlbSA9PSAwKSB7CgkJCWNvdW50Kys7CgkJCVN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwoJCQlmb3IgKGludCBpID0gMDsgaSA8IDk7IGkrKykgc2IuYXBwZW5kKHBhaVtpXSk7CgkJCXNldC5hZGQoc2IudG9TdHJpbmcoKSk7CgkJCXJldHVybjsKCQl9CgkJZm9yIChpbnQgaSA9IHA7IGkgPCA3OyBpKyspIHsKCQkJaWYgKHBhaVtpXSA9PSAwKSBjb250aW51ZTsKCQkJaWYgKHBhaVtpKzFdID09IDApIGNvbnRpbnVlOwoJCQlpZiAocGFpW2krMl0gPT0gMCkgY29udGludWU7CgkJCXBhaVtpXS0tOwoJCQlwYWlbaSsxXS0tOwoJCQlwYWlbaSsyXS0tOwoJCQlqdW50c3UocmVtIC0gMSwgaSk7CgkJCXBhaVtpXSsrOwoJCQlwYWlbaSsxXSsrOwoJCQlwYWlbaSsyXSsrOwoJCX0KCX0KfQ==