public SubsetSum(int[] arr) {
		int sum = Comparison.SUM(arr);
		System.out.println("Sum "+sum);
		int m[][] = new int[arr.length][sum+1];
		for(int i=0;i<arr.length;i++)
			m[i][arr[i]] = 1;
		for(int j = 0;j<=sum;j++){
			for(int i=1;i<arr.length;i++){
				if(j == arr[i]){
					m[i][j]=1;
					continue;
				}
					
				int sumWithoutThisI = Comparison.MAX(j-arr[i],0);
				
				m[i][j] = Comparison.MAX(m[i-1][j], m[i-1][sumWithoutThisI]);
				
			}
		}
		Comparison.PRINT(m);
		int halfSum = sum/2;
		int diff = Integer.MAX_VALUE;
		int subSet = 0;
		for(int i=0;i<arr.length;i++){
			for(int j=halfSum;j>=0;j--){
				if(m[i][j]==1){
					if((halfSum-j)<diff){
						diff = halfSum - j;
						subSet = i;
					}
						
					break;
				}
			}
		}
		System.out.println("Subset: "+subSet);
		System.out.println("diff: "+diff);
		
		
	}