#include<iostream>
#include<stdio.h>
#include<string.h>
#include<cmath>
using namespace std;
struct Node
{
double x,y;
};
Node node[1100];
int vis[1100];
double mat[1005][1005];
int fa[1005];
int find(int x)
{
return fa[x]==x?x:find(fa[x]);
}
void bin(int x,int y)
{
int fx=find(x);
int fy=find(y);
if(fx!=fy)
{
fa[fx]=fa[fy];
}
}
int main()
{
int n,m;
int i,j,k;
int x,y;
int f,t;
double d;
char str[10];
memset(vis,0,sizeof(vis));
memset(mat,-1,sizeof(mat));
scanf("%d%lf",&n,&d);
for(i=0;i<=n;i++)
{
fa[i]=i;
}
for(i=1;i<=n;i++)
{
scanf("%lf%lf",&node[i].x,&node[i].y);
}
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
double tx=fabs(node[i].x-node[j].x);
double ty=fabs(node[i].y-node[j].y);
//printf("%.2f %.2f\n",tx,ty);
double len=sqrt(tx*tx+ty*ty);
if(len<=d)
mat[i][j]=mat[j][i]=len;
else mat[i][j]=mat[j][i]=-1;
//printf("%.2f %.2f\n",len,mat[i][j]);
}
}
/*
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%.2lf ",mat[i][j]);
}
printf("\n");
}*/
while(scanf("%s",str)!=EOF)
{
if(str[0]=='O')
{
scanf("%d",&x);
vis[x]=1;
for(i=1;i<=n;i++)
{
if(vis[i]==1&&mat[x][i]!=-1)
{
bin(x,i);
}
}
}
else if(str[0]=='S')
{
scanf("%d%d",&x,&y);
if(find(x)==find(y))
{
printf("SUCCESS\n");
}
else printf("FAIL\n");
}
}
return 0;
}