Realizing Multiplexer

Realizing Multiplexer

I was able to solve the Multiplexer by using the Canonical Representation, but I ended up with lot's of parts - 3 Not, 8 And and 3 Or elemets. What other approaches are there where the solution will use less PARTS ? Is it possible to use only Nand and Not elements ?