3-dimensional matching