public static void printMonLocsBins(String fileName1, String fileName2, int numBins) {
		int[][] bins = new int[numBins][numBins];
		for (int i=0; i < numBins; i++) {
			for (int j=0; j < numBins; j++) {
				bins[i][j] = 0;
			}
		}
		HashMap<Integer,Integer> map1 = getMonLocs(fileName1);
		Integer[] keys = getKeysWithMaxMinVal(map1);
		int min1 = map1.get(keys[0]).intValue();
		int max1 = map1.get(keys[1]).intValue();
		HashMap<Integer,Integer> map2 = getMonLocs(fileName2);
		keys = getKeysWithMaxMinVal(map2);
		int min2 = map2.get(keys[0]).intValue();
		int max2 = map2.get(keys[1]).intValue();
		int range1 = max1 - min1;
		int range2 = max2 - min2;
		double binLength1 = (double)range1/(double)numBins;
		double binLength2 = (double)range2/(double)numBins;
		Iterator<Integer> itr = map1.keySet().iterator();
		while (itr.hasNext()) {
			Integer key = itr.next();
			int v1 = map1.get(key).intValue();
			if (map2.containsKey(key)) {
				int v2 = map2.get(key).intValue();
				int i1 = (int)Math.floor((double)(v1-min1)/binLength1);
				int i2 = (int)Math.floor((double)(v2-min2)/binLength2);
				try {
					bins[i1][i2] += 1;
				} catch (Exception e) {
					System.out.println(i1+"\t"+i2);
					System.out.println(e);
				}
			}
		}
		for (int binMin = min1; binMin < max1; binMin += binLength1)
			System.out.print(binMin+"\t");
		System.out.println();
		for (int binMin = min2; binMin < max2; binMin += binLength2)
			System.out.print(binMin+"\t");
		System.out.println();
		for (int i=0; i < numBins; i++) {
			for (int j=0; j < numBins; j++) {
				System.out.print(bins[i][j]+"\t");
			}
			System.out.println();
		}
	}