Generalizing k-means for an arbitrary distance matrix