String getOPTConfiguration(int[][] input){
		initState();
		
		for (int pi = 0;pi<permutations.length;pi++){
			int currentMoveCount = 0;
			
			for (int bno=0;bno<_NO_OF_BINS;bno++){
				int allowedType = permutations[pi][bno];
				for(int btype = 0; btype<_BOTTLE_TYPES;btype++){
					if (allowedType!=btype){
						currentMoveCount += input[bno][btype]; 
					} 
				}
			}
			
			String currentPermutation = permutationString(pi);
			
			if ((this.optMoveCount == -1) || 
				(currentMoveCount < optMoveCount) || 
				((currentMoveCount == optMoveCount) && (currentPermutation.compareTo(optPermutation)<0))){
				
				this.optMoveCount = currentMoveCount;
				this.optPermutation = currentPermutation;
			}
		}
		
		return optPermutation+" "+optMoveCount;
	}