private final long mem(long TIME) {
		// display timing information
		System.err.println("# Time: " + (System.nanoTime() - TIME) / 1000 + " mus");
		// memory stuff
		Runtime r = Runtime.getRuntime();
		for (int i =0; i < 4; i++) { r.gc(); }
		long a = (r.totalMemory() - r.freeMemory());
		boolean b = a > 1 << 20;
		long f = b ? 20 : 10;
		System.err.println("# Mem:  " + (a + (1 << f - 1) >> f) + (b ? " mb" : " kb"));
		// set new timer
		return System.nanoTime();
	}