#include<bits/stdc++.h>
using namespace std;
vector<int> g[1000002];
int n,m;
int rd[1000002];
int du[1000002];
int ans[1000002];
void topo(int id)
{
int cnt=0,num=0;
queue<int> q;
for(int i=1;i<=n;i++) rd[i]=du[i];
for(int i=1;i<=n;i++)
{
if(rd[i]==0)
{
q.push(i);
cnt++;
}
}
if(cnt>1) return;
while(!q.empty())
{
int x=q.front();
q.pop();
cnt=0;
++num;
ans[num]=x;
for(auto y:g[x])
{
--rd[y];
if(rd[y]==0)
{
++cnt;
q.push(y);
}
}
if(cnt>1) return;
}
if(num<n)
{
printf("Inconsistency found after %d relations.",id);
exit(0);
}
printf("Sorted sequence determined after %d relations: ",id);
for(int i=1;i<=num;i++)
{
cout<<char(ans[i]+'A'-1);
}
cout<<".\n";
exit(0);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
string s;
cin>>s;
int x=s[0]-'A'+1;
int y=s[2]-'A'+1;
g[x].push_back(y);
du[y]++;
ans[i]={0};
memcpy(rd,du,sizeof(du));
topo(i);
}
printf("Sorted sequence cannot be determined.");
return 0;
}