5. Gaussian elimination