The calculated distance (air line) between Silves and Monsanto is approximately 158 miles respectively 254 kilometers.
By car or train, the actual journey to Monsanto is certainly longer, as only the direct route (as the crow flies) between Silves and Monsanto has been calculated here.