Added additional explanation on input and assumptions.