private STNode<Key, Value> select(STNode<Key, Value> x, int rank)
	{
		if (x == null)
			return null;

		int t = size(x.left);
		if (t > rank)
			return select(x.left, rank);
		else if (t < rank)
			return select(x.right, rank - (t + 1));
		else
			return x;
	}