(S = {{2,-3,7,-5,-6,4,-9},{-1,8,-4,6,0,8,-3},{9,-7,31,-19,-30,28,-48}})//MatrixForm

(S1 = RowReduce[S])//MatrixForm

S2 = Drop[S1,{3},{}]

(Subscript[v, 1]) = Flatten[13*{({{1, 0, (44/13), -(22/13), -(48/13), (56/13), -(81/13)}})}]

(Subscript[v, 2]) = Flatten[13*{({{0, 1, -(1/13), (7/13), -(6/13), (20/13), -(15/13)}})}]

Sperp1 = RowReduce[S];

(Sperp2 = Transpose[Join[-Drop[Sperp1,{3},{1,2}],IdentityMatrix[5]]])//MatrixForm

(Subscript[w, 1]) = Flatten[{({{-(44/13), (1/13), 1, 0, 0, 0, 0}})}]

(Subscript[w, 2]) = Flatten[{({{(22/13), -(7/13), 0, 1, 0, 0, 0}})}]

(Subscript[w, 3]) = Flatten[{({{(48/13), (6/13), 0, 0, 1, 0, 0}})}]

(Subscript[w, 4]) = Flatten[{({{-(56/13), -(20/13), 0, 0, 0, 1, 0}})}]

(Subscript[w, 5]) = Flatten[{({{(81/13), (15/13), 0, 0, 0, 0, 1}})}]

(Subscript[w, 1]).(Subscript[v, 1])

(Subscript[w, 1]).(Subscript[v, 2])

For[k= 1,k≤ 2,k= k+1,
For[l= 1,l≤ 5,l=l+1,
Print[{k,l, (Subscript[v, k]).(Subscript[w, l])}]
]
]

S.Transpose[Sperp2 ]//MatrixForm

Sperp2.Transpose[S]//MatrixForm

S2.Transpose[Sperp2 ]//MatrixForm

Sperp2.Transpose[S2]//MatrixForm

Sperp2//MatrixForm

Join[S2,Sperp2]//MatrixForm

RowReduce[Join[S2,Sperp2]]//MatrixForm