import sys
from itertools import product

def read_track_data(lines):
    idx = 0
    C = int(lines[idx])
    idx += 1
    cases = []

    for _ in range(C):
        N, T = map(int, lines[idx].split())
        idx += 1
        tracks = []
        for _ in range(N):
            parts = list(map(int, lines[idx].split()))
            tracks.append(parts)
            idx += 1
        cases.append((N, T, tracks))
    return cases

def compute_total_time(N, T, tracks, path):
    total = 0
    for i in range(N):
        cp, cbb, cbe, ceb, cee = tracks[i]
        total += cp
        cur = path[i]
        nxt = path[(i + 1) % N]
        if cur == 'F' and nxt == 'F':
            total += ceb
        elif cur == 'F' and nxt == 'B':
            total += cee
        elif cur == 'B' and nxt == 'F':
            total += cbb
        elif cur == 'B' and nxt == 'B':
            total += cbe
        else:
            return None  # Invalid character
    return total

def main():
    with open(sys.argv[1]) as f:
        input_lines = [line.strip() for line in f if line.strip()]
    with open(sys.argv[3]) as f:
        jury_lines = [line.strip() for line in f if line.strip()]
    with open(sys.argv[2]) as f:
        cont_lines = [line.strip() for line in f if line.strip()]

    input_cases = read_track_data(input_lines)

    if len(jury_lines) != len(input_cases) or len(cont_lines) != len(input_cases):
        print("Wrong answer: mismatched number of test cases.")
        sys.exit(1)

    for case_idx, (case, jury_out, cont_out) in enumerate(zip(input_cases, jury_lines, cont_lines)):
        N, T, tracks = case

        # Validate format
        for out_label, out in [('jury', jury_out), ('contestant', cont_out)]:
            if out != "IMPOSSIBLE" and (len(out) != N or any(c not in "FB" for c in out)):
                print("Wrong answer on case #{}: invalid format in {} output.".format(case_idx + 1, out_label))
                sys.exit(1)

        if cont_out == "IMPOSSIBLE":
            if N <= 12:
                found = False
                for bits in product("FB", repeat=N):
                    time = compute_total_time(N, T, tracks, bits)
                    if time is not None and time <= T:
                        found = True
                        break
                if found:
                    print("Wrong answer on case #{}: contestant said IMPOSSIBLE but a valid path exists.".format(case_idx + 1))
                    sys.exit(1)
        else:
            time = compute_total_time(N, T, tracks, cont_out)
            if time is None or time > T:
                print("Wrong answer on case #{}: path is invalid or exceeds allowed time.".format(case_idx + 1))
                sys.exit(1)

    print("OK")

if __name__ == "__main__":
    main()
