private static int[][] getCombinations(int score) {
		ArrayList<ArrayList<Integer>> combinations = new ArrayList<ArrayList<Integer>>();
		
		int maxDblTurnballs = score / 14;
		for (int dt = 0; dt <= maxDblTurnballs; dt++) {
			ArrayList<Integer> dtComb = new ArrayList<Integer>(4);
			dtComb.add(dt);
			
			int dtRem = score - dt*14;
			if (dtRem == 0) {
				combinations.add(dtComb);
			}
			
			int maxTurnballs = dtRem / 6;
			for (int tb = 0; tb <= maxTurnballs; tb++) {
				ArrayList<Integer> tbComb = new ArrayList<Integer>(dtComb);
				tbComb.add(tb);
				
				int tbRem = dtRem - tb*6;
				if (tbRem == 0) {
					combinations.add(tbComb);
				}
				
				int maxDefGrumplings = tbRem / 2;
				for (int dg = 0; dg <= maxDefGrumplings; dg++) {
					ArrayList<Integer> dgComb = new ArrayList<Integer>(tbComb);
					dgComb.add(dg);
					
					int rem = tbRem - dg*2;
					if (rem <= tb) {
						dgComb.add(rem);
						combinations.add(dgComb);
					}
				}
			}
		}
		
		int[][] ary = new int[combinations.size()][4];
		for (int i = 0; i < combinations.size(); i++) {
			ArrayList<Integer> comb = combinations.get(i);
			for (int v = 0; v < comb.size(); v++) {
				ary[i][v] = comb.get(v);
			}
		}
		
		return ary;
	}