← Home
package main

import (
	"fmt"
)

func main() {
	var n int
	if _, err := fmt.Scan(&n); err != nil {
		return
	}

	var k1 int
	fmt.Scan(&k1)
	q1 := make([]int, 20)
	l1 := k1
	h1 := 0
	for i := 0; i < k1; i++ {
		fmt.Scan(&q1[i])
	}

	var k2 int
	fmt.Scan(&k2)
	q2 := make([]int, 20)
	l2 := k2
	h2 := 0
	for i := 0; i < k2; i++ {
		fmt.Scan(&q2[i])
	}

	fights := 0
	visited := make(map[uint64]bool)

	for l1 > 0 && l2 > 0 {
		var state uint64 = uint64(l1)
		shift := 4
		for i := 0; i < l1; i++ {
			state |= uint64(q1[(h1+i)%20]) << shift
			shift += 4
		}
		for i := 0; i < l2; i++ {
			state |= uint64(q2[(h2+i)%20]) << shift
			shift += 4
		}

		if visited[state] {
			fmt.Println("-1")
			return
		}
		visited[state] = true

		c1 := q1[h1]
		h1 = (h1 + 1) % 20
		l1--

		c2 := q2[h2]
		h2 = (h2 + 1) % 20
		l2--

		if c1 > c2 {
			q1[(h1+l1)%20] = c2
			l1++
			q1[(h1+l1)%20] = c1
			l1++
		} else {
			q2[(h2+l2)%20] = c1
			l2++
			q2[(h2+l2)%20] = c2
			l2++
		}
		fights++
	}

	if l1 == 0 {
		fmt.Printf("%d 2\n", fights)
	} else {
		fmt.Printf("%d 1\n", fights)
	}
}