#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>

#include <functional>
#include <cassert>

typedef long long ll;
using namespace std;

#define debug(x) cerr << #x << " = " << x << endl;


#define mod 1000000007 //1e9+7(prime number)
#define INF 1000000000 //1e9
#define LLINF 2000000000000000000LL //2e18
#define SIZE 10000

#define eps 1e-8

bool is_ok(int hx,int hy, int tx, int ty, int td,int a,int w){

  int dx = hx - tx;
  int dy = hy - ty;

  if(a*a < dx*dx + dy*dy) return false;

  double rad;

  if(dx == 0){
    if(dy < 0) rad = 270;
    else rad = 90;
  }else if(dy == 0){
    if(dx < 0) rad = 180;
    else rad = 0;
  }else{
    rad = atan((double)dy/dx);

    if(rad < 0){
      rad += M_PI;
    }
  
    if(dy < 0){
      rad += M_PI;
    }

    rad = rad/M_PI * 180;
  }
  
  rad += 180 - w;
  w = 180;

  if(rad >= 360) rad -= 360;
  if(rad < 0) rad += 360;
    
  return w - td/2.0 - eps < rad && rad < w + td/2.0 + eps;
}

bool calc(){
  int h,r,t;
  int hx[SIZE],hy[SIZE];
  int u,m,s,du,dm,ds;
  int tx[SIZE],ty[SIZE],td[SIZE];
  int w[SIZE],a[SIZE];
  
  scanf("%d%d",&h,&r);

  if(h==0) return false;

  for(int i=0;i<h;i++){
    scanf("%d%d",hx+i,hy+i);
  }

  scanf("%d%d%d%d%d%d",&u,&m,&s,&du,&dm,&ds);

  t = u+m+s;
  
  for(int i=0;i<u;i++){
    scanf("%d%d",tx+i,ty+i);
    td[i] = du;
  }

  for(int i=u;i<u+m;i++){
    scanf("%d%d",tx+i,ty+i);
    td[i] = dm;
  }

  for(int i=u+m;i<u+s+m;i++){
    scanf("%d%d",tx+i,ty+i);
    td[i] = ds;
  }

  for(int i=0;i<r;i++){
    scanf("%d%d",w+i,a+i);
  }

  int max_d = 0;
  int ans[SIZE] = {};

  for(int i=0;i<h;i++){

    for(int j=0;j<r;j++){
      bool flag = true;

      for(int k=0;k<t;k++){
        if(is_ok(hx[i],hy[i],tx[k],ty[k],td[k],a[j],w[j])) flag = false;
      }

      if(flag && is_ok(hx[i],hy[i],0,0,du,a[j],w[j])) ans[i]++;
    }
  }
  
  for(int i=0;i<h;i++)
    max_d = max(max_d,ans[i]);

  if(max_d > 0){
  
    bool flag1 = false;
    
    for(int i=0;i<h;i++){
      if(max_d == ans[i]){
        if(flag1) printf(" ");
        flag1 = true;
        printf("%d",i+1);
      }
    }
    
    printf("\n");
  }else{
    puts("NA");
  }
  
  return true;
}
  

int main(){

  while(calc());
  
  return 0;
}