package main
import (
"bufio"
"fmt"
"os"
)
func check(g []string, ch byte) bool {
for i := 0; i < 3; i++ {
if g[i][0] == ch && g[i][1] == ch && g[i][2] == ch {
return true
}
if g[0][i] == ch && g[1][i] == ch && g[2][i] == ch {
return true
}
}
if g[0][0] == ch && g[1][1] == ch && g[2][2] == ch {
return true
}
if g[0][2] == ch && g[1][1] == ch && g[2][0] == ch {
return true
}
return false
}
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
for ; t > 0; t-- {
g := make([]string, 3)
for i := 0; i < 3; i++ {
fmt.Fscan(in, &g[i])
}
if check(g, 'X') {
fmt.Fprintln(out, "X")
} else if check(g, 'O') {
fmt.Fprintln(out, "O")
} else if check(g, '+') {
fmt.Fprintln(out, "+")
} else {
fmt.Fprintln(out, "DRAW")
}
}
}