// Arup Guha
// 4/10/20
// hexagram

import java.util.*;

public class hexagram {

	final public static int[][] LOCS = 
	{{1,2,3,4},{0,2,5,7},{0,3,6,10},{1,5,8,11},{7,8,9,10},{4,6,9,11}};
	
	public static int magic;

	public static int[] sol;
	public static int[] nums;

	public static void main(String[] args) {
	
		Scanner stdin = new Scanner(System.in);
		
		int sum = 0;
		nums = new int[12];
		for (int i=0; i<12; i++) {
			nums[i] = stdin.nextInt();
			sum += nums[i];
		}
		
		while (!zero()) {
		
			int res = 0;
		
			int[] perm = new int[12];
			boolean[] used = new boolean[12];
		
			// Only time there is a solution.
			if (sum%3 == 0) {
				magic = sum/3;
				res = go(perm, used, 0);
			}
		
			System.out.println(res/12);
			
			sum = 0;
			for (int i=0; i<12; i++) {
				nums[i] = stdin.nextInt();
				sum += nums[i];
			}			
		}
	}
	
	public static boolean zero() {
		for (int i=0; i<12; i++)
			if (nums[i] != 0)
				return false;
		return true;
	}
	
	public static int go(int[] perm, boolean[] used, int k) {
	
		if (k == 12) return 1;
		
		int res = 0;
		for (int i=0; i<12; i++) {
		
			if (used[i]) continue;
			if (!canPlace(perm, k, i)) continue;
			
			perm[k] = i;
			used[i] = true;
			res += go(perm, used, k+1);
			used[i] = false;
		}
		
		return res;
	}
	
	public static boolean canPlace(int[] perm, int k, int i) {
	
		for (int loop=0; loop<LOCS.length; loop++) {
			if (LOCS[loop][3] == k) {
				int sum = nums[i];
				for (int z=0; z<3; z++)
					sum += nums[perm[LOCS[loop][z]]];
				if (sum != magic) return false;
			}
		}
		return true;
	}
}