private static void populateSets(String[] args) throws Exception {
         int nsetA, ndiff;
         try {
             nsetA = Integer.parseInt(args[0]);
             ndiff = Integer.parseInt(args[1]);
         } catch (Exception e) {
             nsetA = 10000;
             ndiff = 100;            
         }                 
         int begB = 0;
         int endB = 0;
         nsetA = (nsetA < 0) ? 0 - nsetA : nsetA;
         ndiff = (ndiff < 0) ? 0 - ndiff : ndiff;
         if(ndiff <= nsetA) {
             begB = ndiff / 2;
             endB = nsetA + (ndiff + 1)/2;
         } else {
             begB = nsetA / 2;
             endB = begB + ndiff + (nsetA % 2);
         }  
         System.out.println("Preparing reconcilers A[0:" + (nsetA - 1) + "] and B[" + begB + ":" + (endB - 1) + "]");
         for(long i = 0; i < nsetA; i++) {
             String s = Long.toString(i) + "-item";
             storeA.addIfNew(Reconciler.hash(s.getBytes()), s);
             //storeA.addIfNew(i, s);
         }
         for(long i = begB; i < endB; i++) {
             String s = Long.toString(i) + "-item";
               storeB.addIfNew(Reconciler.hash(s.getBytes()), s);
             //storeB.addIfNew(i, s);
         }
         System.out.println("A has: " + storeA.cardinality() + " B has: " + storeB.cardinality());
    }