def findMaxNumSegements(length, scaleA, scaleB, scaleC):
dp = [float('-inf')] * (length + 1)
dp[0] = 0
for rem in range(1, length + 1):
for i in [scaleA, scaleB, scaleC]:
if rem - i >= 0:
dp[rem] = max(dp[rem], 1 + dp[rem - i])
return dp[length] if dp[length] != float('-inf') else 0
