Una posible implementación podría ser la siguiente: