#include<stdio.h>
typedef struct
{
int x,y;
}C;
C ele[1005];
long d;
int n,f[1005],flag[1005];
void update(int m)
{
long len;
int i,x,y,fx,fm;
int find(int);
/*fm =find(m);*/
for(i=1;i<=n;i++)
{
if(flag[i]==1&&i!=m)
{
x=ele[i].x-ele[m].x;
y=ele[i].y-ele[m].y;
len=x*x+y*y;
if(len<=d*d)
{
fm=find(m);
fx=find(i);
if(fx<fm)
{ f[fx]=fm;}
else if(fx>fm)
{ f[fm]=fx;}
}
}
}
}
int find(int x)
{
int i,t;
for(i=x;f[i]>0;i=f[i]);
while(i!=x)
{
t=f[x];
f[x]=i;
x=t;
}
return i;
}
main()
{
int m,i,x1,x2,fx1,fx2;
char s;
scanf("%d%d",&n,&d);
for(i=1;i<=n;i++)
{
scanf("%d%d",&ele[i].x,&ele[i].y);
f[i]=0;
flag[i]=0;
}
while(getchar(),scanf("%c",&s)!=EOF)
{
if(s=='O')
{
scanf("%d",&m);
flag[m]=1;
update(m);
}
else
{
scanf("%d%d",&x1,&x2);
fx1=find(x1);
fx2=find(x2);
if(fx1==fx2&&flag[fx1])
{
printf("SUCCESS\n");
}
else printf("FAIL\n");
}
}
}