Due to higher precedence of ?:
conditional operator in comparison to =
z = k < m ? m++ : k=m;
Is equivalent to (or say parse as):
z = ((k < m ? m++ : k) = m);
// ^^^^^^^^^^^^^^^^
// expression = m
m
is assigned to an expression that is - Lvalue error.