#include <stdio.h> #include <string.h> #include <math.h> #define maxn 1220 double x[maxn],y[maxn],d; bool vis[maxn]; int p[maxn]; int n; double dist(int i,int j) { return fabs( (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]) ); } int find(int x) { if(x==p[x]) return p[x]; return p[x]=find(p[x]); } void link(int a,int b) { int fa=find(a); int fb=find(b); if(fa!=fb) p[fa]=fb; } int main() { int i; int u,v; scanf("%d%lf",&n,&d); for(i=1;i<=n;i++) { scanf("%lf%lf",&x[i],&y[i]); p[i]=i; vis[i]=0; } char op; getchar(); while(scanf("%c",&op)!=EOF) { if(op=='O') { scanf("%d",&u); vis[u]=1; for(i=1;i<=n;i++) if(vis[i]&&i!=u&&dist(i,u)<=d*d) link(i,u); } else { scanf("%d%d",&u,&v); int fu=find(u); int fv=find(v); if(fu!=fv) printf("FAIL "); else printf("SUCCESS "); } getchar(); } return 0; }