package main import ( "bufio" "fmt" "os" "strconv" "strings" ) var sc = bufio.NewScanner(os.Stdin) func nextInt() int { sc.Scan() i, err := strconv.Atoi(sc.Text()) if err != nil { panic(err) } return i } func nextLine() string { sc.Scan() return sc.Text() } func main() { n := nextInt() var a []int var b []int for i := 0; i < n; i++ { co := strings.Split(nextLine(), " ") x, _ := strconv.Atoi(co[0]) a = append(a, x) x, _ = strconv.Atoi(co[1]) b = append(b, x) } m := nextInt() var x []int var y []int for i := 0; i < m; i++ { co := strings.Split(nextLine(), " ") p, _ := strconv.Atoi(co[0]) x = append(x, p) p, _ = strconv.Atoi(co[1]) y = append(y, p) } max := 0 buy := make([]int, m) for i := 0; i < m; i++ { for k := 0; k < n; k++ { if x[i] <= a[k] && y[i] >= b[k] { buy[i]++ if buy[i] > max { max = buy[i] } } } } if max == 0 { fmt.Println(0) } else { for i := 0; i < m; i++ { if buy[i] == max { fmt.Println(i + 1) } } } }