#include <iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
const int maxn=1010;
struct
{
int x,y;
}a[maxn];
double d[maxn][maxn];
int text[maxn];
double calc(int t,int s)
{
double q=a[t].x-a[s].x;
q*=q;
double w=a[t].y-a[s].y;
w*=w;
return(sqrt(q+w));
}
int f[maxn];
int find(int x)
{
if(f[x]!=x)
f[x]=find(f[x]);
return(f[x]);
}
int make(int a,int b)
{
int f1=find(a);
int f2=find(b);
if(f1!=f2)
f[f2]=f1;
}
int main()
{
// freopen("in.txt","r",stdin);
int n,di;
scanf("%d %d",&n,&di);
for(int i=1;i<=n;i++)
scanf("%d %d",&a[i].x,&a[i].y);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
d[i][j]=calc(i,j);
// calc(1,2);
char tmp[10];
int p,q;
memset(text,0,sizeof(text));
for(int i=1;i<=n;i++)
f[i]=i;
while(scanf("%s",tmp)!=EOF)
{
if(tmp[0]=='O')
{
scanf("%d",&p);
text[p]=1;
for(int i=1;i<=n;i++)
{
if(text[i]&&d[i][p]<=di)
make(i,p);
}
}
else
{
scanf("%d %d",&p,&q);
int f1=find(p);
int f2=find(q);
if(f1==f2)
printf("SUCCESS\n");
else
printf("FAIL\n");
}
}
return 0;
}