public int findSums(int min, int max) {
		BigInteger bMin = new BigInteger(""+min);
		BigInteger bMax = new BigInteger(""+max);
		HashMap<BigInteger, BigInteger> solutions = new HashMap<BigInteger, BigInteger>();
		if (debug) System.err.println("Checking array: " + list.toString());
		for (int i = 0; i < list.size(); i++) {
			int j = list.size()-1;
			while(j > i && list.get(i).add(list.get(j)).compareTo(bMax) > 0) {
				j--;
			}
			if (debug) System.err.println("\tChecking in range: " + i + " : " + j);
			while(j > i && list.get(i).add(list.get(j)).compareTo(bMin) >= 0) {
				j--;
				solutions.put(list.get(i).add(list.get(j)), null);
				if (debug) System.err.println("\t\tFound solution: " + list.get(i) + " : " + list.get(j));
			}
		}
		return solutions.size();
	}