#include<bits/stdc++.h>
using namespace std;
int n,m,p,person[101];
struct classmate
{
string name;
int guilty;
}a[21];
map<string,int>day,name;
set<int>criminal;
string t[101];
int main()
{
day["Monday"]=0;
day["Tuesday"]=1;
day["Wednesday"]=2;
day["Thursday"]=3;
day["Friday"]=4;
day["Saturday"]=5;
day["Sunday"]=6;
cin>>m>>n>>p;
for (int i=1;i<=m;i++)
{
cin>>a[i].name;
name[a[i].name]=i;
}
getchar();
for (int i=1;i<=p;i++)
{
char c;
while (c=getchar())
{
if (c=='\n')break;
t[i]+=c;
}
int j=0;
while (t[i][j]!=':')j++;
person[i]=name[t[i].substr(0,j)];
t[i]=t[i].substr(j+2);
}
for (int i=2;i<=(1<<(m+1));i+=2)
{
int cnt=0;
int ab=i>>1;
while (ab)
{
if (ab&1)cnt++;
ab>>=1;
}
if (cnt!=n)continue;
int days[7]={0,0,0,0,0,0,0};
for (int j=1;j<=m;j++)a[j].guilty=0;
for (int j=1;j<=p;j++)
{
int people=person[j];
vector<string>v;
int sz=t[j].size(),lst=0;
for (int k=0;k<sz;k++)
if (t[j][k]==' ')
{
v.push_back(t[j].substr(lst,k-lst));
lst=k+1;
}
v.push_back(t[j].substr(lst));
if (v[0]=="I")
{
if (v[1]=="am")
{
if (v[2]=="guilty.")
{
if (i&(1<<people))
{
if (a[people].guilty==1)
{
cout<<"conflict:"<<people<<"'s false self identify\n";
goto end;
}
else
{
a[people].guilty=-1;
}
}
else
{
if (a[people].guilty==-1)
{
cout<<"conflict:"<<people<<"'s true self identify\n";
goto end;
}
else
{
a[people].guilty=1;
}
}
}
else if (v[2]=="not")
{
if (v[3]=="guilty.")
{
if (i&(1<<people))
{
if (a[people].guilty==-1)
{
cout<<"conflict:"<<people<<"'s false self wash\n";
goto end;
}
else
{
a[people].guilty=1;
}
}
else
{
if (a[people].guilty==1)
{
cout<<"conflict:"<<people<<"'s true self wash\n";
goto end;
}
else
{
a[people].guilty=-1;
}
}
}
}
}
}
else if (v[0]=="Today")
{
if (v[1]=="is")
{
if (day[v[2]])
{
if (i&(1<<people))
{
if (days[day[v[2]]]==1)
{
cout<<"conflict:"<<people<<"'s false date\n";
goto end;
}
else
{
days[day[v[2]]]=-1;
}
}
else
{
if (days[day[v[2]]]==-1)
{
cout<<"conflict:"<<people<<"'s true date\n";
goto end;
}
else
{
days[day[v[2]]]=1;
}
}
}
}
}
else if (name[v[0]])
{
if (v[1]=="is")
{
if (v[2]=="guilty.")
{
if (i&(1<<people))
{
if (a[name[v[0]]].guilty==1)
{
goto end;
}
else
{
a[name[v[0]]].guilty=-1;
}
}
else
{
if (a[name[v[0]]].guilty==-1)
{
goto end;
}
else
{
a[name[v[0]]].guilty=1;
}
}
}
else if (v[2]=="not")
{
if (v[3]=="guilty.")
{
if (i&(1<<people))
{
if (a[name[v[0]]].guilty==-1)
{
goto end;
}
else
{
a[name[v[0]]].guilty=1;
}
}
else
{
if (a[name[v[0]]].guilty==1)
{
goto end;
}
else
{
a[name[v[0]]].guilty=-1;
}
}
}
}
}
}
}
cnt=0;
for (int j=1;j<=m;j++)
if (a[j].guilty==1)
cnt++;
if (cnt>1)continue;
for (int j=1;j<=m;j++)
if (a[j].guilty==1)
criminal.insert(j);
end: ;
}
if (criminal.empty())cout<<"Impossible";
else if (criminal.size()>1)cout<<"Cannot Determine";
else cout<<a[*(criminal.begin())].name;
}