#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
typedef long long ll;
const ll N=30;
bool myvis[N];
ll n,m;
bool isfirst[N];
vector<ll> ans;
char c1,c2,c3;
vector<ll> road[N];
ll in[N],bin[N];
ll dep;
bool vis[N];
bool flag1=false;
//bool tjbz=false;
void dfs(ll now)
{
///bool flag2=false;
vis[now]=true;
ans.push_back(now);
dep++;
ll i;
for(i=0;i<road[now].size();i++)
{
if(vis[road[now][i]]==true)
{
flag1=true;
break;
}
in[road[now][i]]--;
if(in[road[now][i]]==0)
dfs(road[now][i]);
}
dep--;
}
int main()
{
scanf("%lld%lld",&n,&m);
ll i,j;
for(i=1;i<=m;i++)
{
getchar();
scanf("%c",&c1);
scanf("%c",&c2);
scanf("%c",&c3);
myvis[c1-'A']=myvis[c3-'A']=true;
road[c1-'A'].push_back(c3-'A');
bin[c3-'A']++;
in[c3-'A']++;
for(j=0;j<26;j++)
{
in[j]=bin[j];
vis[j]=false;
}
for(j=0;j<n;j++)
if(in[j]==0&&myvis[j]==true)
{
dfs(j);
break;
}
if(flag1==true||j==n)
{
printf("Inconsistency found after %lld relations.",i);
return 0;
}
if(dep==n)
{
printf("Sorted sequence determined after %lld relations: ",i);
for(j=0;j<ans.size();j++)
printf("%c",(char)'A'+ans[j]);
printf(".");
return 0;
}
dep=0;
flag1=false;
ans.clear();
}
printf("Sorted sequence cannot be determined.");
return 0;
}