Se me ocurrió una solución muy elegante al 18. Ojalá fuera la correcta :(