https://joonk2.github.io/posts/upperBound-lowerBound/
upperBound