One small question: The way that I read the specification, it seems that `L, M, N` are the intermediate variable. Am I reading the specification wrong?
It probably doesn't matter either way in the implementation, but I wanted to ask.