public synchronized void remove(T t, K k)
	{
		final TreeSet<K> tKs=map1.get(t);
		if(tKs!=null)
		{
			if(tKs.contains(k))
			{
				if(tKs.size()==1)
				{
					tKs.clear();
					map1.remove(t);
				}
				else
					tKs.remove(k);
			}
		}
		final TreeSet<T> kTs=map2.get(k);
		if(kTs!=null)
		{
			if(kTs.contains(t))
			{
				if(kTs.size()==1)
				{
					kTs.clear();
					map2.remove(k);
				}
				else
					kTs.remove(t);
			}
		}
	}