import java.util.*;
import java.lang.*;
import java.math.*;

class Ideone
{
	public static BigInteger count(int n,int[]ni){
		if(n==0) return BigInteger.ONE;
		BigInteger ac = BigInteger.ZERO;
		for(int i=0;i<ni.length;i++) {
			if(ni[i]>0) {
				int[] ni2 = Arrays.copyOf(ni, ni.length);
				ni2[i]--;
				ac=ac.add(count(n-1,ni2)); 
			}
		}
		return ac;
	}
	
    public static void main(String[] args)  {
		int n=5;
		int ni[]=new int[]{2,3,1};
		BigInteger res = count(n, ni);
		System.out.printf("n=%d ni=%s res=%s\n",n,Arrays.toString(ni),res.toString());
	}

}