For problem statement at 0-999/700-799/720-729/723/problemD.txt this is a correct solution, but verifier at 0-999/700-799/720-729/723/verifierD.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
type Lake struct {
size int
cells [][2]int
}
var n, m, k int
var grid [][]byte
var vis [][]bool
var di = []int{-1, 0, 1, 0}
var dj = []int{0, 1, 0, -1}
func dfs(i, j int, comp *[][2]int) {
vis[i][j] = true
*comp = append(*comp, [2]int{i, j})
for d := 0; d < 4; d++ {
ni := i + di[d]
nj := j + dj[d]
if ni >= 0 && ni < n && nj >= 0 && nj < m && grid[ni][nj] == '.' && !vis[ni][nj] {
dfs(ni, nj, comp)
}
}
}
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Scan(&n, &m, &k)
grid = make([][]byte, n)
for i := 0; i < n; i++ {
line, _ := reader.ReadString('\n')
grid[i] = []byte(line[:m])
}
vis = make([][]bool, n)
for i := range vis {
vis[i] = make([]bool, m)
}
var lakes []Lake
for i := 0; i < n; i++ {
for j := 0; j < m; j++ {
if grid[i][j] == '.' && !vis[i][j] {
var comp [][2]int
dfs(i, j, &comp)
isLake := true
for _, p := range comp {
x, y := p[0], p[1]
if x == 0 || x == n-1 || y == 0 || y == m-1 {
isLake = false
break
}
}
if isLake {
lk := Lake{len(comp), comp}
lakes = append(lakes, lk)
}
}
}
}
sort.Slice(lakes, func(i, j int) bool {
return lakes[i].size < lakes[j].size
})
l := len(lakes)
total := 0
numToFill := l - k
for i := 0; i < numToFill; i++ {
total += lakes[i].size
for _, p := range lakes[i].cells {
grid[p[0]][p[1]] = '*'
}
}
fmt.Println(total)
for i := 0; i < n; i++ {
for j := 0; j < m; j++ {
fmt.Printf("%c", grid[i][j])
}
fmt.Println()
}
}
```