Johnson's O(n*m*log(n)) alg initial commit