void put(int key, int value) {
		int bucket = key % buckets;
		if(bucket < 0) {
			bucket = -bucket;
		}
		int[] data = content[bucket];
		if(data == null) {
			data = new int[33];
			content[bucket] = data;

		}
		int off = data[0] * 2 + 1;
		// eliminate duiplicates
		if(off == 1 || data[off-2] != key || data[off-1] != value) {
			if(off >= data.length) {
				int[] ndata = new int[(data.length - 1) * 2 + 1];
				System.arraycopy(data, 0, ndata, 0, off);
				data = ndata;
				content[bucket] = data;
			}
			data[off++] = key;
			data[off++] = value;
			data[0]++;
		}
	}