#include <cstdio>#include <iostream>#include <cmath>#include <cstdlib>#include <cstring>#define _for(i,a,b) for(int i= a;i<b;i++)using namespace std;const int N = 1e3+5;typedef long long ll;int flag[N],f[N];int n,d;struct Node{ int x,y;}a[N];int find( int x ){ if( f[x]==x ) return x; return f[x]=find( f[x] );}int merge(int x,int y){ if( find(x)!= find(y) ){ f[find(x)] = find(y); }}inline double dis(int x1,int y1,int x2,int y2){ return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );}int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n>>d; _for(i,1,n+1) cin>>a[i].x>>a[i].y , f[i]=i; char c; while(cin>>c){ int j,k; if(c==‘O‘){ cin>>j; flag[j] = 1; _for(i,1,n+1){ if( i == j) continue; if(flag[i] && dis( a[i].x,a[i].y,a[j].x,a[j].y ) <= d ){ merge( i,j ); } } }else if( c==‘S‘){ cin>>j>>k; if( flag[j] && flag[k] &&find(j)==find(k) ){ cout<<"SUCCESS"<<endl; } else cout<<"FAIL"<<endl; } } return 0;}