public static Map<Integer,Long> process() throws IOException {
		File f = new File("integers");              
	    DataInputStream leer = null; 
	    long num=0;
	    SortedSet<Long> set = new TreeSet<Long>();
	    Map<Integer,Long> sol = new HashMap<Integer,Long>();
	    

		/* 
			Al analizar el archivo puedes darte cuenta que tras leer los primeros 100.000 números desordenados
			a partir de ahí aparecen ordenados (desde el 100000 hasta el 2147383647).

			Despues de ese solo hay que leer otros pocos mas y ya solo te quedará buscar los que no están.
		*/

	    leer = new DataInputStream(new FileInputStream(f));
	    while(num != 99950) {
	    	long l = readBytesLittle2Big(leer, 4);
	    	set.add(l);
	    	num++;
	    }

	    leer.skip(2140000004);
	    leer.skip(2140000000);
	    leer.skip(2140000000);
	    leer.skip(2140000000);
	    leer.skip(7283647*4);
	    
	    long l = 0;
	    do {
	    	l = readBytesLittle2Big(leer, 4);
	    	set.add(l);
	    } while(l != 2147447034L);
	    
	    int i = 1;
	    SortedSet<Long> s1 = set.subSet(0L, 100000L);
	    SortedSet<Long> s2 = set.subSet(2147383648L,Long.MAX_VALUE);
	    
	    long a = -1;
	    for (long c : s1) {
	    	if(c != a+1) {
	    		sol.put(i, a+1);
	    		i++;
	    	}
	    	a = c;
	    }
	    a = 2147383647;
	    for (long c : s2) {
	    	if(c != a+1) {
	    		sol.put(i, a+1);
	    		i++;
	    	}
	    	a = c;
	    }
		leer.close();
		
		return sol;
	}