package main

import (
    "fmt"
    "sort"
)

type pii struct {
    first, second int
}

func main() {
    var t int
    fmt.Scan(&t)
    for t > 0 {
        t--
        var n int
        fmt.Scan(&n)
        r := []pii{}
        b := []pii{}
        for i := 0; i < n; i++ {
            var p pii
            var c rune
            fmt.Scan(&p.first, &p.second)
            fmt.Scanf("%c", &c)
            if c == 'R' {
                r = append(r, p)
            } else {
                b = append(b, p)
            }
        }
        sort.Slice(r, func(i, j int) bool {
            return r[i].first > r[j].first
        })
        sort.Slice(b, func(i, j int) bool {
            return b[i].first > b[j].first
        })
        ri, bi := 0, 0
        bd, rd := false, false
        s := int64(0)
        for ri < len(r) && bi < len(b) {
            c := min(r[ri].second, b[bi].second)
            s += int64(c) * int64(r[ri].first-b[bi].first)
            if s <= -2 {
                bd = true
            }
            if s >= 1 {
                rd = true
            }
            r[ri].second -= c
            if r[ri].second == 0 {
                ri++
            }
            b[bi].second -= c
            if b[bi].second == 0 {
                bi++
            }
        }
        if ri == len(r) {
            if bi == len(b) {
                fmt.Printf("Draw %d +\n", r[0].first)
            } else {
                if rd {
                    fmt.Printf("Draw %d +\n", r[0].first)
                } else {
                    fmt.Println("Second")
                }
            }
        } else {
            if bd {
                fmt.Printf("Draw %d +\n", r[0].first)
            } else {
                fmt.Printf("First %d +\n", r[0].first)
            }
        }
    }
}

func min(a, b int) int {
    if a < b {
        return a
    }
    return b
}
