#include<iostream>
#include<map>
#include<string>
#include<algorithm>
#include<stack>
#include<vector>
#include<string.h>
using namespace std;
int n,z,M[ 102 ] [ 102 ] ,List[ 102 ] ;
bool vis[ 102 ] ;
vector< int > G[ 102 ] ;
map< string,int > s2i;
map< int ,string> i2s;
stack< int > order;
void dfs( int s) ;
void top_sort( )
{
for ( int i= 0 ; i< n; i++ )
{
if ( vis[ i] == false )
{
dfs( i) ;
}
}
}
void dfs( int s)
{
for ( int i= 0 ; i< G[ s] .size ( ) ; i++ )
{
if ( vis[ G[ s] [ i] ] == false )
{
dfs( G[ s] [ i] ) ;
}
}
vis[ s] = true ;
List[ z-- ] = s;
}
int check( string s1,string s2)
{
int f= 0 ;
int x= s2i[ s1] ;
int y= s2i[ s2] ;
for ( int i= 0 ; i< G[ x] .size ( ) ; i++ )
{
if ( G[ x] [ i] == y)
{
f= 1 ;
break ;
}
}
return f;
}
void Sort( )
{
int i,j;
for ( i= 1 ; i< n; i++ )
{
for ( j= i; j> 0 ; j-- )
{
if ( ! M[ List[ j- 1 ] ] [ List[ j] ] )
{
if ( List[ j- 1 ] > List[ j] )
{
swap( List[ j] ,List[ j- 1 ] ) ;
}
}
}
}
}
int main( )
{
int i,k,m,t= 0 ;
string s1,s2;
while ( cin >> n)
{
z= n- 1 ;
//if(t)
// cout<<endl;
for ( i= 0 ,k= 0 ; i< n; i++ )
{
cin >> s1;
i2s[ k] = s1;
s2i[ s1] = k++ ;
}
cin >> m;
while ( m-- )
{
cin >> s1>> s2;
G[ s2i[ s1] ] .push_back ( s2i[ s2] ) ;
M[ s2i[ s1] ] [ s2i[ s2] ] = 1 ;
}
cout << "Case #" << ++ t<< ": Dilbert should drink beverages in this order:" ;
top_sort( ) ;
Sort( ) ;
for ( i= 0 ; i< n; i++ )
cout << " " << i2s[ List[ i] ] ;
cout << "." << endl<< endl;
s2i.clear ( ) ;
i2s.clear ( ) ;
for ( i= 0 ; i< n; i++ )
{
G[ i] .clear ( ) ;
vis[ i] = false ;
}
memset ( M,0 ,sizeof ( M) ) ;
}
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hcD4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPHN0YWNrPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHN0cmluZy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbix6LE1bMTAyXVsxMDJdLExpc3RbMTAyXTsKYm9vbCB2aXNbMTAyXTsKdmVjdG9yPGludD5HWzEwMl07Cm1hcDxzdHJpbmcsaW50PnMyaTsKbWFwPGludCxzdHJpbmc+aTJzOwpzdGFjazxpbnQ+b3JkZXI7CnZvaWQgZGZzKGludCBzKTsKdm9pZCB0b3Bfc29ydCgpCnsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgaWYodmlzW2ldPT1mYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIGRmcyhpKTsKICAgICAgICB9CiAgICB9Cn0Kdm9pZCBkZnMoaW50IHMpCnsKICAgIGZvcihpbnQgaT0wO2k8R1tzXS5zaXplKCk7aSsrKQogICAgewogICAgICAgIGlmKHZpc1tHW3NdW2ldXT09ZmFsc2UpCiAgICAgICAgewogICAgICAgICAgICBkZnMoR1tzXVtpXSk7CiAgICAgICAgfQogICAgfQogICAgdmlzW3NdPXRydWU7CiAgICBMaXN0W3otLV09czsKfQppbnQgY2hlY2soc3RyaW5nIHMxLHN0cmluZyBzMikKewogICAgaW50IGY9MDsKICAgIGludCB4PXMyaVtzMV07CiAgICBpbnQgeT1zMmlbczJdOwogICAgZm9yKGludCBpPTA7aTxHW3hdLnNpemUoKTtpKyspCiAgICB7CiAgICAgICAgaWYoR1t4XVtpXT09eSkKICAgICAgICB7CiAgICAgICAgICAgIGY9MTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGY7Cn0Kdm9pZCBTb3J0KCkKewogICAgaW50IGksajsKICAgIGZvcihpPTE7aTxuO2krKykKICAgIHsKICAgICAgICBmb3Ioaj1pO2o+MDtqLS0pCiAgICAgICAgewogICAgICAgICAgICBpZighTVtMaXN0W2otMV1dW0xpc3Rbal1dKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihMaXN0W2otMV0+TGlzdFtqXSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzd2FwKExpc3Rbal0sTGlzdFtqLTFdKTsKCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpCnsKICAgIGludCBpLGssbSx0PTA7CiAgICBzdHJpbmcgczEsczI7CiAgICB3aGlsZShjaW4+Pm4pCiAgICB7CiAgICAgICAgej1uLTE7CiAgICAgICAgLy9pZih0KQogICAgICAgICAgIC8vIGNvdXQ8PGVuZGw7CiAgICAgICAgZm9yKGk9MCxrPTA7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+czE7CiAgICAgICAgICAgIGkyc1trXT1zMTsKICAgICAgICAgICAgczJpW3MxXT1rKys7CiAgICAgICAgfQogICAgICAgIGNpbj4+bTsKICAgICAgICB3aGlsZShtLS0pCiAgICAgICAgewogICAgICAgICAgICBjaW4+PnMxPj5zMjsKICAgICAgICAgICAgR1tzMmlbczFdXS5wdXNoX2JhY2soczJpW3MyXSk7CiAgICAgICAgICAgIE1bczJpW3MxXV1bczJpW3MyXV09MTsKICAgICAgICB9CiAgICAgICAgY291dDw8IkNhc2UgIyI8PCsrdDw8IjogRGlsYmVydCBzaG91bGQgZHJpbmsgYmV2ZXJhZ2VzIGluIHRoaXMgb3JkZXI6IjsKICAgICAgICB0b3Bfc29ydCgpOwogICAgICAgIFNvcnQoKTsKICAgICAgICBmb3IoaT0wO2k8bjtpKyspCiAgICAgICAgICAgIGNvdXQ8PCIgIjw8aTJzW0xpc3RbaV1dOwogICAgICAgIGNvdXQ8PCIuIjw8ZW5kbDw8ZW5kbDsKICAgICAgICBzMmkuY2xlYXIoKTsKICAgICAgICBpMnMuY2xlYXIoKTsKICAgICAgICBmb3IoaT0wO2k8bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBHW2ldLmNsZWFyKCk7CiAgICAgICAgICAgIHZpc1tpXT1mYWxzZTsKICAgICAgICB9CiAgICAgICAgbWVtc2V0KE0sMCxzaXplb2YoTSkpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K
stdin
Mwp2b2RrYQp3aW5lCmJlZXIKMgp3aW5lIHZvZGthCmJlZXIgd2luZQoKNQp3aW5lCmJlZXIKcnVtCmFwcGxlLWp1aWNlCmNhY2hhY2EKNgpiZWVyIGNhY2hhY2EKYXBwbGUtanVpY2UgYmVlcgphcHBsZS1qdWljZSBydW0KYmVlciBydW0KYmVlciB3aW5lCndpbmUgY2FjaGFjYQoKMTAKY2FjaGFjYQpydW0KYXBwbGUtanVpY2UKdGVxdWlsYQp3aGlza2V5CndpbmUKdm9ka2EKYmVlcgptYXJ0aW5pCmdpbgoxMQpiZWVyIHdoaXNrZXkKYXBwbGUtanVpY2UgZ2luCnJ1bSBjYWNoYWNhCnZvZGthIHRlcXVpbGEKYXBwbGUtanVpY2UgbWFydGluaQpydW0gZ2luCndpbmUgd2hpc2tleQphcHBsZS1qdWljZSBiZWVyCmJlZXIgcnVtCndpbmUgdm9ka2EKYmVlciB0ZXF1aWxh
3
vodka
wine
beer
2
wine vodka
beer wine
5
wine
beer
rum
apple-juice
cachaca
6
beer cachaca
apple-juice beer
apple-juice rum
beer rum
beer wine
wine cachaca
10
cachaca
rum
apple-juice
tequila
whiskey
wine
vodka
beer
martini
gin
11
beer whiskey
apple-juice gin
rum cachaca
vodka tequila
apple-juice martini
rum gin
wine whiskey
apple-juice beer
beer rum
wine vodka
beer tequila