A branch-and-price algorithm for the capacitated p-median problem