An m-ary block code, m = 2, 3, 4, . . ., of length n ∈ II N is called balanced if, and only if, every codeword is balanced; that is, the real sum of the codeword components, or weight, is equal to (m − 1)n/2 . This paper presents a tight generalization of Knuth's complementation method with parallel (hence, fast) decoding scheme. Let n w m indicate the number of m-ary words of length n and weight w ∈ {0, 1, . . . , (m − 1)n}. A simple implementation of the scheme uses (m − 1)k + m mod 2 balancing functions to make a k ∈ II N digit information word to be balanced. So, r ∈ II N check digits can be used to balance k ≤ r (m−1)r/2 m − m mod 2 /(m − 1) information digits. A refined implementation of the parallel decoding scheme uses r check digits to balance k ≤ (m r − 1)/(m − 1) information digits.Index Terms-m-ary alphabet, balanced codes, Knuth's complementation method, parallel decoding scheme, unidirectional error detection, optical and magnetic recording.