public ArrayList<ArrayList<Integer>> subsetsWithDup(int[] num) {
		result = new ArrayList<ArrayList<Integer>>();
		if (num.length < 1)
			return result;
		Arrays.sort(num);
		ArrayList<Integer> temp = new ArrayList<Integer>();
		// empty set
		result.add(new ArrayList<Integer>(temp));
		getSubset(num, temp, 0);
		return result;
	}