solve by trial and error, excellent performance
add time statistics