/*思路: 把这十个数看成一个数独,在纸上自己画出有哪几个点加到了一块,然后依次遍历,总共有120种可能
但是,每个都有对应的旋转,就是除以5,,还得有个镜像所以 /10
*/
#include<bits/stdc++.h>
int a[10] = {0};
int b[13] = {0};
int s = 0;
int f(int n)
{
int i;
int c,d,e,f1,g;
if(n == 10)
{
c = a[0] + a[2] + a[5] + a[8];
d = a[0] + a[3] + a[6] + a[9];
e = a[1] + a[2] + a[3] + a[4];
f1 = a[1] + a[5] + a[7] + a[9];
g = a[8] + a[7] + a[6] + a[4];
if(c == d && d == e && e == f1 && f1 == g)
s++;
}
else
for(i = 1; i <= 12; i++)
{
if(i == 7 || i == 11)continue;
if(b[i] == 0)
{
b[i] = 1;
a[n] = i;
f(n+1);
b[i] = 0;
}
}
}
int main()
{
f(0);
printf("%d",s / 10);
}