#include <iostream>
#include <cstdio>
#include <vector>
#include <list>
#include <cmath>
#include <fstream>
#include <algorithm>
#include <string>
#include <queue>
#include <set>
#include <map>
#include <complex>
#include <iterator>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <stack>
#include <climits>
#include <deque>
#include <bitset>
#include <cassert>
#include <ctime>
using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
const int dy[]={-1,0,1,0},dx[]={0,1,0,-1};
// adjust problem by problem
const double EPS=1e-8;
const double PI=acos(-1.0);
#ifdef __GNUC__
int popcount(int n){return __builtin_popcount(n);}
int popcount(ll n){return __builtin_popcountll(n);}
#endif
#ifndef __GNUC__
template<class T> int popcount(T n){int cnt=0;while(n){if(n%2)cnt++;n/=2;}return cnt;}
#endif
template<class T>int SIZE(T a){return a.size();}
template<class T>string IntToString(T num){string res;stringstream ss;ss<<num;return ss.str();}
template<class T>T StringToInt(string str){T res=0;for(int i=0;i<SIZE(str);i++)res=(res*10+str[i]-'0');return res;}
template<class T>T gcd(T a,T b){if(b==0)return a;return gcd(b,a%b);}
template<class T>T lcm(T a,T b){return a/gcd(a,b)*b;}
template<class T> void PrintSeq(T &a,int sz){for(int i=0;i<sz;i++){cout<<a[i];if(sz==i+1)cout<<endl;else cout<<' ';}}
bool EQ(double a,double b){return abs(a-b)<EPS;}
void fastStream(){cin.tie(0);std::ios_base::sync_with_stdio(0);}
vector<string> split(string str,char del){
  vector<string> res;
  for(int i=0,s=0;i<SIZE(str);i++){
    if(str[i]==del){if(i-s!=0)res.push_back(str.substr(s,i-s));s=i+1;}
    else if(i==SIZE(str)-1){res.push_back(str.substr(s));}
  }
  return res;
}


int H,R;
double hx[101],hy[101];
int U,M,S;
double du,dm,ds;
double ux[101],uy[101];
double mx[101],my[101];
double sx[101],sy[101];
double w[101],a[101];

typedef complex<double> P;
// テ・ツ??ァツゥツ?
double dot(const P &a, const P &b) {
  return (a.real() * b.real() + a.imag() * b.imag());
}
// テ・ツ、ツ姪ァツゥツ?
double cross(const P &a, const P &b) {
  return (a.real() * b.imag() - a.imag() * b.real());
}
// 2テ」ツδ凖」ツつッテ」ツδ暗」ツδォテゥツ鳴禿」ツ?ョティツァツ津・ツコツヲ
// aテ」ツ?凝」ツつ叡テ」ツ?クテ・ツキツヲテ・ツ堕ィテ」ツつ甘」ツ?ァテ、ツスツ陛・ツコツヲテ」ツ??0->2*PI)
double diffAngle(const P &a,const P &b){
  double angle=atan2(cross(a,b),dot(a,b));
  if(angle<0)return 2*PI+angle;
  return angle;
}
    
// テ・ツコツァテヲツィツ凖」ツ?ョテ・ツ崢榲ィツサツ「(テ・ツコツァテヲツィツ冪テ」ツ?ォテ」ツ?づ」ツつ凝ァツつケテ」ツつ?テ・ツ債甘ヲツ卍づィツィツ暗・ツ崢榲」ツつ甘」ツ?ォa(テ」ツδゥテ」ツつクテ」ツつ「テ」ツδウ)テ・ツ崢榲ィツサツ「)
P roundPoint(const P &p,double a){
  return P(cos(a)*p.real()-sin(a)*p.imag(),sin(a)*p.real()+cos(a)*p.imag());
}
// テ」ツ?づ」ツつ凝・ツ?エテヲツ可?」ツ?凝」ツつ嘉・ツシツ陛ィツカツ甘」ツ?療・ツ?暗」ツ?クテ・ツ個づ」ツ??」ツ?古・ツアツ甘」ツ?湘」ツ?凝」ツ?ゥテ」ツ??」ツ??
bool check(double x,double y,double wv,double dv,double av,int cx,int cy){
  cx-=x,cy-=y;
  x=y=0;
  double dist=sqrt(pow(x-cx,2)+pow(y-cy,2));
  if(!(EQ(dist,av)||dist<av))return false;
  P rv=roundPoint(P(1,0),wv/180.0*PI);
  double diff=diffAngle(rv,P(cx,cy))/PI*180;
  if(diff>=180)diff=360-diff;
  return (EQ(diff,dv/2)||diff<dv/2);
}

int main(){
  //ifstream cin("in.txt");
  while(cin>>H>>R&&(H|R)){
    for(int i=0;i<H;i++)cin>>hx[i]>>hy[i];
    cin>>U>>M>>S>>du>>dm>>ds;
    for(int i=0;i<U;i++)cin>>ux[i]>>uy[i];
    for(int i=0;i<M;i++)cin>>mx[i]>>my[i];
    for(int i=0;i<S;i++)cin>>sx[i]>>sy[i];
    for(int i=0;i<R;i++)cin>>w[i]>>a[i];
    int maxVal=0;
    vector<int> cand;
    // テ・ツョツカテ」ツ?氾」ツ?ィテ」ツ?ォティツィツ暗ァツョツ?
    for(int h=0;h<H;h++){
      int cnt=0;
      for(int d=0;d<R;d++){
        // テ・ツ篠淌ァツつケテ」ツ?凝」ツつ嘉」ツ?ォテ」ツ?甘」ツ??」ツ?古・ツアツ甘」ツ??
        if(check(0,0,w[d],du,a[d],hx[h],hy[h])){
          //cout<<h<<" "<<d<<endl;
          // if(h==1){
          //   cout<<"a"<<endl;
          // }
          // テ、ツサツ姪」ツ?ョテ・ツ?エテヲツ可?」ツ?凝」ツつ嘉」ツ?ォテ」ツ?甘」ツ??」ツ?古・ツアツ甘」ツ??」ツ?ヲテ」ツ?ッテ」ツ??」ツ?妥」ツ?ェテ」ツ??
          bool no=false;
          for(int i=0;i<U;i++)no|=check(ux[i],uy[i],w[d],du,a[d],hx[h],hy[h]);
          for(int i=0;i<M;i++)no|=check(mx[i],my[i],w[d],dm,a[d],hx[h],hy[h]);
          for(int i=0;i<S;i++)no|=check(sx[i],sy[i],w[d],ds,a[d],hx[h],hy[h]);
          if(!no){
            //cout<<h<<" "<<d<<endl;
            cnt++;
          }
        }
      }
      //cout<<h<<" "<<cnt<<endl;
      if(maxVal<cnt){
        maxVal=cnt;
        cand.clear();
        cand.push_back(h+1);
      }
      else if(maxVal!=0&&maxVal==cnt)cand.push_back(h+1);
    }
    if(cand.size()==0)cout<<"NA"<<endl;
    else{
      for(int i=0;i<(int)cand.size();i++){
        cout<<cand[i];
        if(i==(int)cand.size()-1)cout<<endl;
        else cout<<" ";
      }
    }
  }
  
  return 0;
}

Measured memory_bytes: 1344