We give a polynomial-time approximation algorithm for the (not necessarily metric) k-Median problem. The algorithm is an α-size-approximation algorithm for α<1+2ln(n/k). That is, it guarantees a solution having size at most α×k, and cost at most the cost of any size-k solution. This is the first polynomial-time approximation algorithm to match the well-known bounds of HΔ and 1+ln(n/k) for unweighted Set Cover (a special case) within a constant factor. It matches these bounds within a factor of 2. The algorithm runs in time O(kmlog(n/k)logm), where n is the number of customers and m is the instance size.