← Home
 ```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)

	for tc := 0; tc < t; tc++ {
		var n, m int
		fmt.Fscan(in, &n, &m)

		grid := make([][]byte, n)
		maxCol := make([]int, n)

		for i := 0; i < n; i++ {
			line := make([]byte, m)
			fmt.Fscan(in, &line)
			grid[i] = line
			maxCol[i] = -1
			for j := 0; j < m; j++ {
				if grid[i][j] == 'X' {
					maxCol[i] = j
				}
			}
		}

		for i := 0; i < n; i++ {
			grid[i][0] = 'X'
		}

		for i := 0; i < n; i++ {
			if maxCol[i] >= 0 {
				for j := 0; j <= maxCol[i]; j++ {
					grid[i][j] = 'X'
				}
			}
		}

		for i := 0; i < n; i++ {
			out.Write(grid[i])
			out.WriteByte('\n')
		}
	}
}
```