//Little Elephant and Strings
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
string pill,good[ 50 ] ;
bool substring( string s1,string s2)
{
cout << "S1:: " << s1<< endl;
cout << "S2:: " << s2<< endl;
cout << "s1 Length:" << s1.length ( ) << endl;
cout << "s2 Length:" << s2.length ( ) << endl;
int lt= s1.length ( ) - s2.length ( ) + 1 ;
cout << "s1.length()-s2.length()+1 " << lt<< endl;
for ( int i= 0 ; i< s1.length ( ) - s2.length ( ) + 1 ; i++ )
{
cout << "I val is: " << i;
cout << " .The Substring is " << s1.string :: substr ( i,s2.length ( ) ) << endl;
if ( s1.string :: substr ( i,s2.length ( ) ) == s2)
{
return true ;
}
}
return false ;
}
int main( )
{
int n,k;
scanf ( "%d %d" ,& n,& k) ;
string pill,good[ 50 ] ;
for ( int i= 0 ; i< n; i++ )
cin >> good[ i] ;
int boolean= 0 ;
for ( int i= 0 ; i< k; i++ )
{
boolean= 0 ;
cin >> pill;
if ( pill.length ( ) >= 47 )
{
puts ( "Good" ) ;
boolean++ ;
}
else
{
for ( int j= 0 ; j< n; j++ )
{
if ( substring( pill,good[ j] ) == true )
{
puts ( "Good" ) ;
boolean++ ;
break ;
}
}
}
if ( boolean== 0 )
puts ( "Bad" ) ;
}
//system("pause");
return 0 ;
}
Ly9MaXR0bGUgRWxlcGhhbnQgYW5kIFN0cmluZ3MKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RyaW5nIHBpbGwsZ29vZFs1MF07CmJvb2wgc3Vic3RyaW5nKHN0cmluZyBzMSxzdHJpbmcgczIpCnsKCWNvdXQ8PCJTMTo6ICI8PHMxPDxlbmRsOwoJY291dDw8IlMyOjogIjw8czI8PGVuZGw7Cgljb3V0PDwiczEgTGVuZ3RoOiI8PHMxLmxlbmd0aCgpPDxlbmRsOwoJY291dDw8InMyIExlbmd0aDoiPDxzMi5sZW5ndGgoKTw8ZW5kbDsKCWludCBsdD1zMS5sZW5ndGgoKS1zMi5sZW5ndGgoKSsxOwoJY291dDw8InMxLmxlbmd0aCgpLXMyLmxlbmd0aCgpKzEgIjw8bHQ8PGVuZGw7CiAgICAgZm9yKGludCBpPTA7aTxzMS5sZW5ndGgoKS1zMi5sZW5ndGgoKSsxO2krKykKICAgICB7CgkJICAgY291dDw8IkkgdmFsIGlzOiAiPDxpOwogICAgICAgICAgICAgICAgICAgY291dDw8IiAuVGhlIFN1YnN0cmluZyBpcyAiPDxzMS5zdHJpbmc6OnN1YnN0cihpLHMyLmxlbmd0aCgpKTw8ZW5kbDsKICAgICAgICAgICBpZihzMS5zdHJpbmc6OnN1YnN0cihpLHMyLmxlbmd0aCgpKT09czIpCgkJICAgewoJCQkgICAKICAgICAgICAgICAgcmV0dXJuIHRydWU7CgkJICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7Cn0KaW50IG1haW4oKQp7CiAgICBpbnQgbixrOwogICAgc2NhbmYoIiVkICVkIiwmbiwmayk7CiAgICBzdHJpbmcgcGlsbCxnb29kWzUwXTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICBjaW4gPj4gZ29vZFtpXTsKICAgIGludCBib29sZWFuPTA7CiAgICBmb3IoaW50IGk9MDtpPGs7aSsrKQogICAgewogICAgICAgICAgICBib29sZWFuPTA7CiAgICBjaW4gPj4gcGlsbDsKICAgIGlmKHBpbGwubGVuZ3RoKCk+PTQ3KQogICAgewogICAgcHV0cygiR29vZCIpOwogICAgYm9vbGVhbisrOwogICAgfQogICAgZWxzZSAKICAgIHsKICAgICAgICAgZm9yKGludCBqPTA7ajxuO2orKykKICAgICAgICAgewogICAgICAgICAgICAgIGlmIChzdWJzdHJpbmcocGlsbCxnb29kW2pdKT09dHJ1ZSkKICAgICAgICAgICAgICB7CgkJCQkgICAgICAKICAgICAgICAgICAgICAgICAgICAgICBwdXRzKCJHb29kIik7CiAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbisrOwogICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICB9IAogICAgICAgICB9CiAgICB9CiAgICBpZiAoYm9vbGVhbj09MCkKICAgIHB1dHMoIkJhZCIpOwp9CgovL3N5c3RlbSgicGF1c2UiKTsKcmV0dXJuIDA7CiAgICAKICAgIAogICAgCn0=