docs: private void createIndex() {
  		indexLen = MIN_LEN;
  		TreeMap<String, TreeSet<Integer>> indexT = new TreeMap<String, TreeSet<Integer>>();
  		for(String s: dp.keySet()) {
  			if(s.length() < indexLen)
  				continue;
  			String temp = s.substring(0, indexLen);
  			//System.out.println(temp);
  			if(indexT.containsKey(temp) == false) {
  				TreeSet<Integer> set = new TreeSet<Integer>();
  				set.add(s.length());
  				indexT.put(temp, set);
  			} else {
  				indexT.get(temp).add(s.length());
  			}
  		}
  		for(Entry<String, TreeSet<Integer>> entry: indexT.entrySet()) {
  			String key = entry.getKey();
  			TreeSet<Integer> set = entry.getValue();
  			int[] ia = new int[set.size()];
  			int i = set.size();
  			//			System.out.println(key);
  			for(Integer integer: set) {
  				ia[--i] = integer;
  
  			}
  			//			for(int j = 0; j < ia.length; j++) 
  			//				System.out.println(ia[j]);
  
  			index.put(key, ia);
  		}
  		//		System.out.println(indexT);
  	}