In order of the best rate received it typically goes like this:

Cambios
Bank
Airport (Airport is always the worst rate, I would avoid that one if at all possible)