# coupon collector problem for different number of copies of each coupon type

I would like to pose a question on a variation on the classical coupon collector's problem: coupon type $i$ is to be collected $k_i$ times. What is the expected stopping time or the expected number of trials needed to have collected all the sought after $(k_1,k_2,...,k_n)$ coupons?

We can compute this with recursion. But is there a better, more direct approach? What I am particularly interested to see is a martingale method.