r̲e̲a̲l̲ p̲r̲o̲c̲e̲d̲u̲r̲e̲ COMBINATION(J, N, K); v̲a̲l̲u̲e̲ N, K; i̲n̲t̲e̲g̲e̲r̲ a̲r̲r̲a̲y̲ J; i̲n̲t̲e̲g̲e̲r̲ N; i̲n̲t̲e̲g̲e̲r̲ K; b̲e̲g̲i̲n̲ i̲n̲t̲e̲g̲e̲r̲ A; i̲n̲t̲e̲g̲e̲r̲ B; i̲n̲t̲e̲g̲e̲r̲ L; B := 1; mainbody: i̲f̲ J[B] ≥ B t̲h̲e̲n̲ b̲e̲g̲i̲n̲ A := J[B] - B - 1; f̲o̲r̲ L := 1 s̲t̲e̲p̲ 1 u̲n̲t̲i̲l̲ B d̲o̲ J[L] := L + A; g̲o̲t̲o̲ exit e̲n̲d̲; i̲f̲ B = K t̲h̲e̲n̲ g̲o̲t̲o̲ initiate; B := B + 1; g̲o̲t̲o̲ mainbody; initiate: f̲o̲r̲ B := 1 s̲t̲e̲p̲ 1 u̲n̲t̲i̲l̲ K d̲o̲ J[B] := N - K - 1 + B; exit: e̲n̲d̲ COMBINATION;