For problem statement at 0-999/700-799/740-749/745/problemB.txt this is a correct solution, but verifier at 0-999/700-799/740-749/745/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
type Point struct {
r, c int
}
func main() {
reader := bufio.NewReader(os.Stdin)
var n, m int
if _, err := fmt.Fscan(reader, &n, &m); err != nil {
return
}
pts := []Point{}
minR, maxR := n, -1
minC, maxC := m, -1
for i := 0; i < n; i++ {
var s string
fmt.Fscan(reader, &s)
for j := 0; j < m; j++ {
if s[j] == 'X' {
pts = append(pts, Point{i, j})
if i < minR {
minR = i
}
if i > maxR {
maxR = i
}
if j < minC {
minC = j
}
if j > maxC {
maxC = j
}
}
}
}
C := len(pts)
if C == 0 {
fmt.Println("NO")
return
}
for i := range pts {
pts[i].r -= minR
pts[i].c -= minC
}
h := maxR - minR + 1
w := maxC - minC + 1
inS := make([][]bool, h)
for i := 0; i < h; i++ {
inS[i] = make([]bool, w)
}
for _, p := range pts {
inS[p.r][p.c] = true
}
twoC := 2 * C
for R := h; R <= twoC; R++ {
if twoC%R != 0 {
continue
}
C_prime := twoC / R
if C_prime < w {
continue
}
abs_dr := R - h
abs_dc := C_prime - w
dr_cands := []int{abs_dr}
if abs_dr != 0 {
dr_cands = append(dr_cands, -abs_dr)
}
dc_cands := []int{abs_dc}
if abs_dc != 0 {
dc_cands = append(dc_cands, -abs_dc)
}
for _, dr := range dr_cands {
for _, dc := range dc_cands {
overlap := false
for _, p := range pts {
nr, nc := p.r+dr, p.c+dc
if nr >= 0 && nr < h && nc >= 0 && nc < w {
if inS[nr][nc] {
overlap = true
break
}
}
}
if !overlap {
fmt.Println("YES")
return
}
}
}
}
fmt.Println("NO")
}
```