For problem statement at 0-999/300-399/370-379/374/problemC.txt this is a correct solution, but verifier at 0-999/300-399/370-379/374/verifierC.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
headers := strings.Fields(scanner.Text())
n, _ := strconv.Atoi(headers[0])
m, _ := strconv.Atoi(headers[1])
grid := make([]string, n)
for i := 0; i < n; i++ {
scanner.Scan()
grid[i] = scanner.Text()
}
var letterVal [256]int
letterVal['D'] = 0
letterVal['I'] = 1
letterVal['M'] = 2
letterVal['A'] = 3
nextLetter := [4]int{1, 2, 3, 0}
N := n * m
state := make([]int8, N)
dp := make([]int, N)
for i := range dp {
dp[i] = -1
}
dr := [4]int{-1, 1, 0, 0}
dc := [4]int{0, 0, -1, 1}
type Frame struct {
id int
dir int8
maxVal int
}
stack := make([]Frame, 0, 1024)
var dfs func(startID int) bool
dfs = func(startID int) bool {
stack = stack[:0]
state[startID] = 1
stack = append(stack, Frame{id: startID, dir: 0, maxVal: 0})
for len(stack) > 0 {
top := &stack[len(stack)-1]
if top.dir == 4 {
dp[top.id] = top.maxVal
state[top.id] = 2
stack = stack[:len(stack)-1]
continue
}
r := top.id / m
c := top.id % m
d := top.dir
nr := r + dr[d]
nc := c + dc[d]
if nr >= 0 && nr < n && nc >= 0 && nc < m {
nid := nr*m + nc
curLetter := letterVal[grid[r][c]]
nextL := nextLetter[curLetter]
nbrLetter := letterVal[grid[nr][nc]]
if nbrLetter == nextL {
if state[nid] == 1 {
return true
} else if state[nid] == 2 {
w := 0
if curLetter == 2 {
w = 1
}
if dp[nid]+w > top.maxVal {
top.maxVal = dp[nid] + w
}
top.dir++
} else {
state[nid] = 1
stack = append(stack, Frame{id: nid, dir: 0, maxVal: 0})
}
} else {
top.dir++
}
} else {
top.dir++
}
}
return false
}
maxAns := 0
for r := 0; r < n; r++ {
for c := 0; c < m; c++ {
if grid[r][c] == 'D' {
id := r*m + c
if state[id] == 0 {
if dfs(id) {
fmt.Println("Poor Inna!")
return
}
}
if dp[id] > maxAns {
maxAns = dp[id]
}
}
}
}
if maxAns == 0 {
fmt.Println("Poor Dima!")
} else {
fmt.Println(maxAns)
}
}
```