#include <bits/stdc++.h>
using namespace std;
vector<int> e[26];
int deg[26];
int q[26],head,tail,n,m;
int ans[26];
int topo(){
memset(deg,0,sizeof(deg));
for (int i=0;i<n;i++){
for (int j=0;j<(int)e[i].size();j++){
deg[e[i][j]]++;
}
}
head=0,tail=-1;
for (int i=0;i<n;i++){
if (deg[i]==0){
q[++tail]=i;
}
}
int c=0;
while (head<=tail){
if (tail-head+1>1){
return -1;
}
int now=q[head++];
ans[c++]=now;
for (int i=0;i<(int)e[now].size();i++){
deg[e[now][i]]--;
if (deg[e[now][i]]==0){
q[++tail]=e[now][i];
}
}
}
if (c==n){
return 1;
}
else{
return 0;
}
}
int main(){
cin>>n>>m;
for (int i=1;i<=m;i++){
char a,d,b;
cin>>a>>d>>b;
e[a-'A'].push_back(b-'A');
int ss=topo();
if (ss==1){
cout<<"Sorted sequence determined after "<<i<<" relations: ";
for (int j=0;j<n;j++){
cout<<char(ans[j]+'A');
}
cout<<".";
return 0;
}
else if(ss==0){
cout<<"Inconsistency found after "<<i<<" relations.";
return 0;
}
}
cout<<"Sorted sequence cannot be determined.";
return 0;
}