public static boolean fixedSizeSubsetOfSum(int[] set, int m, int sum) {
		if (set == null || set.length < m || sum < 0)
			return false;
		
		boolean[][] f=new boolean[m+1][sum+1];
		f[0][0]=true;
		
		for(int i=0;i<set.length;i++){
			for(int j=Math.min(i+1,m);j>=1;j--){
				for(int k=1;k<=sum;k++){
					if(set[i]<=k && f[j-1][k-set[i]]){
						f[j][k]=true;
					}
				}
			}
		}
		
		return f[m][sum];
	}