#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define fi first
#define se second
#define mp make_pair
#define all(cont) cont.begin(), cont.end()
int main( )
{
ios:: sync_with_stdio ( 0 ) ;
cin .tie ( 0 ) ;
#ifndef ONLINE_JUDGE
freopen ( "input.txt" , "r" , stdin ) ;
freopen ( "output.txt" , "w" , stdout ) ;
#endif
ll tt = 1 ;
ll N;
string str;
while ( getline( cin ,str) )
{
N = stoll( str) ;
ll M;
string val,a,b;
vector< string> arr( N) ;
unordered_map< string,bool > visited;
for ( ll i= 0 ; i< N; i++ )
{
cin >> val;
arr[ i] = val;
visited[ val] = false ;
}
unordered_map< string,ll> indegree;
unordered_map< string,vector< string>> adj;
cin >> M;
for ( ll i= 0 ; i< M; i++ )
{
cin >> a>> b;
adj[ a] .pb ( b) ;
indegree[ b] ++ ;
}
string ans;
while ( true )
{
bool flag = false ;
for ( int i= 0 ; i< N; i++ )
{
if ( indegree[ arr[ i] ] == 0 && ! visited[ arr[ i] ] )
{
ans + = arr[ i] + " " ;
for ( auto it: adj[ arr[ i] ] )
indegree[ it] -- ;
flag = true ;
visited[ arr[ i] ] = true ;
}
}
if ( flag== false )
break ;
}
cout << "Case #" << tt<< ": Vivek should drink beverages in this order: " << ans<< endl;
cout << endl;
tt++ ;
getline( cin ,str) ;
getline( cin ,str) ;
}
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGFsbChjb250KSBjb250LmJlZ2luKCksIGNvbnQuZW5kKCkKCmludCBtYWluKCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKICAgIGxsIHR0ID0gMTsKICAgIGxsIE47CiAgICBzdHJpbmcgc3RyOwogICAgd2hpbGUoZ2V0bGluZShjaW4sc3RyKSkKICAgIHsKICAgICAgICBOID0gc3RvbGwoc3RyKTsKICAgICAgICBsbCBNOwogICAgICAgIHN0cmluZyB2YWwsYSxiOwogICAgICAgIHZlY3RvcjxzdHJpbmc+YXJyKE4pOwogICAgICAgIHVub3JkZXJlZF9tYXA8c3RyaW5nLGJvb2w+dmlzaXRlZDsKICAgICAgICBmb3IobGwgaT0wO2k8TjtpKyspCiAgICAgICAgewoKICAgICAgICAgICAgY2luPj52YWw7CiAgICAgICAgICAgIGFycltpXSA9IHZhbDsKICAgICAgICAgICAgdmlzaXRlZFt2YWxdID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIHVub3JkZXJlZF9tYXA8c3RyaW5nLGxsPmluZGVncmVlOwogICAgICAgIHVub3JkZXJlZF9tYXA8c3RyaW5nLHZlY3RvcjxzdHJpbmc+PmFkajsKICAgICAgICBjaW4+Pk07CiAgICAgICAgZm9yKGxsIGk9MDtpPE07aSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj5hPj5iOwogICAgICAgICAgICBhZGpbYV0ucGIoYik7CiAgICAgICAgICAgIGluZGVncmVlW2JdKys7CiAgICAgICAgfQogICAgICAgIHN0cmluZyBhbnM7CiAgICAgICAgd2hpbGUodHJ1ZSkKICAgICAgICB7CiAgICAgICAgICAgIGJvb2wgZmxhZyA9IGZhbHNlOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPE47aSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihpbmRlZ3JlZVthcnJbaV1dPT0wICYmICF2aXNpdGVkW2FycltpXV0pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYW5zICs9IGFycltpXSsiICI7CiAgICAgICAgICAgICAgICAgICAgZm9yKGF1dG8gaXQ6YWRqW2FycltpXV0pCiAgICAgICAgICAgICAgICAgICAgICAgIGluZGVncmVlW2l0XS0tOwogICAgICAgICAgICAgICAgICAgIGZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHZpc2l0ZWRbYXJyW2ldXSA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoZmxhZz09ZmFsc2UpCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgY291dDw8IkNhc2UgIyI8PHR0PDwiOiBWaXZlayBzaG91bGQgZHJpbmsgYmV2ZXJhZ2VzIGluIHRoaXMgb3JkZXI6ICI8PGFuczw8ZW5kbDsKICAgICAgICBjb3V0PDxlbmRsOwogICAgICAgIHR0Kys7CiAgICAgICAgZ2V0bGluZShjaW4sc3RyKTsKICAgICAgICBnZXRsaW5lKGNpbixzdHIpOwogICAgfQoKICAgIHJldHVybiAwOwoKCn0K
stdin
OAphCmIKYwpkCmUKZgpzCnQKNgphIGUKYSBiCmMgZAplIGYKcyB0CmEgdAoKOApzCmEKYgplCmYKYwpkCnQKNgphIGUKYSBiCmMgZAplIGYKcyB0CmEgdAoKNQpBCkIKQwpECkUKNQpDIEEKRCBBCkIgRApFIEIKRSBD
8
a
b
c
d
e
f
s
t
6
a e
a b
c d
e f
s t
a t
8
s
a
b
e
f
c
d
t
6
a e
a b
c d
e f
s t
a t
5
A
B
C
D
E
5
C A
D A
B D
E B
E C