2D rectangle packing