def func tx, ty, tk, wd, wl, hx, hy
    result = false
    w0 = Math.atan2(hy - ty, hx - tx)
    w0 += 2 * Math::PI if w0 < 0
    wrad = wd / 180 * Math::PI
    diff = [(w0 - wrad).abs, 2 * Math::PI - (w0 - wrad).abs].min
    drad = tk / 360 * Math::PI
    result = true if (tx - hx) ** 2 + (ty - hy) ** 2 <= wl ** 2 && diff <= drad
    result
end

while true
    h, r = gets.chomp.split.map(&:to_i)
    break if [h, r] == [0, 0]
    houses = []
    h.times{houses << gets.chomp.split.map(&:to_f)}
    arr = gets.chomp.split.map(&:to_i)
    3.upto(5){|i| arr[i] = arr[i].to_f}
    trees = []
    (arr[0]+arr[1]+ arr[2]).times{|i|
        line = gets.chomp.split.map(&:to_f)
        kind = arr[5]
        if i < arr[0].to_i
            kind = arr[3]
        elsif i < arr[0] + arr[1]
            kind = arr[4]
        end
        line << kind
        trees << line
    }

    arr2 = Array.new(h, 0)
    winds = []
    r.times{winds << gets.chomp.split.map(&:to_f)}
    winds.each{|d, l|
        houses.each_with_index{|item, hi|
            if func(0.0, 0.0, arr[3], d, l, item[0], item[1])
                kaori = true
                trees.each{|tx, ty, tk|
                    if func(tx, ty, tk, d, l, item[0], item[1])
                        kaori = false
                        break
                    end
                }
                arr2[hi] += 1 if kaori
            end
        }
    }
    if arr2.max == 0
        puts "NA"
    else
        arr3 = []
        arr2.each_with_index{|x, i| arr3 << i + 1 if x == arr2.max}
        puts arr3.sort.join(" ")
    end
end

