#include<bits/stdc++.h>
using namespace std;
int stu[1005];
struct rs{
int rID,sID,s,t;
}ss[100005];
int tot=0;
int main(){
int T;
scanf("%d",&T);
while(T--){
string s;
cin>>s;
if(s=="reserve"){
int sID,rID,a,b,t,st;
scanf("%d %d %d:%d %d",&sID,&rID,&a,&b,&t);
st=a*60+b;
t=st+t-1;
if(stu[sID]>=3){
printf("FAIL\n");
continue;
}
if(t-st+1>120){
printf("FAIL\n");
stu[sID]++;
if(stu[sID]>=2){
for(int i=1;i<=tot;i++){
if(ss[i].sID==sID) ss[i].rID=ss[i].sID=ss[i].s=ss[i].t=0;
}
}
continue;
}
for(int i=1;i<=tot;i++){
if(ss[i].sID==0) continue;
if(((ss[i].rID==rID)||(ss[i].sID==sID))&&((ss[i].s>=st&&ss[i].s<=t)||(ss[i].t>=st&&ss[i].t<=t)||(ss[i].s<=st&&ss[i].t>=st)||(ss[i].s<=t&&ss[i].t>=t))){
printf("FAIL\n");
if(ss[i].sID==sID){
stu[sID]++;
if(stu[sID]>=2){
for(int j=1;j<=tot;j++){
if(ss[j].sID==sID) ss[j].rID=ss[j].sID=ss[j].s=ss[j].t=0;
}
}
}
goto abc;
}
}
ss[++tot].sID=sID;
ss[tot].rID=rID;
ss[tot].s=st;
ss[tot].t=t;
printf("SUCCESS %d\n",tot);
}
else{
int x;
scanf("%d",&x);
if(ss[x].sID==0||x>tot||x<1) printf("FAIL\n");
else{
ss[x].rID=ss[x].sID=ss[x].s=ss[x].t=0;
printf("SUCCESS\n");
}
}
abc:
;
}
return 0;
}