//差分约束系统(构建单源最短路径)要用fullman算法,有存在权值为负的边 #include<iostream> using namespace std; const int M=120; const int inf=0x7ffff; struct node{ int s,e,v; }edge[M]; int n,m,d[M]; bool bellman_flody() { int i,j; for(i=0;i<=n+1;i++) d[i]=inf; d[0]=0; for(i=1;i<=n+1;i++)//要n+1个点 for(j=0;j<=(n+m);j++)//有n+m条边 { if(d[edge[j].s]+edge[j].v<d[edge[j].e]) d[edge[j].e]=d[edge[j].s]+edge[j].v; } for(i=0;i<=(n+m);i++) if(d[edge[i].s]+edge[i].v<d[edge[i].e]) return false; return true; } int main() { // freopen("in.txt","r",stdin); int i,j,si,ni,k; char oi[5]; while(scanf("%d",&n) && n) { scanf("%d",&m); for(i=0;i<m;i++) { scanf("%d%d%s%d",&si,&ni,oi,&k); if(oi[0]=='g') { edge[i].s=si; edge[i].e=si+ni+1; edge[i].v=-k-1; } else { edge[i].s=si+ni+1; edge[i].e=si; edge[i].v=k-1; } } for(i=1,j=m;i<=n+1;i++,j++) { edge[j].s=0; edge[j].e=i; edge[j].v=0; } if(bellman_flody()) printf("lamentable kingdom/n"); else printf("successful conspiracy/n"); } return 0; }