```go
package main
import (
"fmt"
)
func main() {
var grid [3][3]byte
for i := 0; i < 3; i++ {
var line string
fmt.Scanln(&line)
for j := 0; j < 3; j++ {
grid[i][j] = line[j]
}
}
dirs := [][2]int{
{-1, -1}, {-1, 0}, {-1, 1},
{0, -1}, {0, 1},
{1, -1}, {1, 0}, {1, 1},
}
best := "ZZZ"
for r1 := 0; r1 < 3; r1++ {
for c1 := 0; c1 < 3; c1++ {
for _, d1 := range dirs {
r2, c2 := r1+d1[0], c1+d1[1]
if r2 < 0 || r2 >= 3 || c2 < 0 || c2 >= 3 {
continue
}
for _, d2 := range dirs {
r3, c3 := r2+d2[0], c2+d2[1]
if r3 < 0 || r3 >= 3 || c3 < 0 || c3 >= 3 {
continue
}
if (r3 == r1 && c3 == c1) || (r3 == r2 && c3 == c2) {
continue
}
word := string([]byte{grid[r1][c1], grid[r2][c2], grid[r3][c3]})
if word < best {
best = word
}
}
}
}
}
fmt.Println(best)
}
```