backward substitution