#include<iostream>
#include<string>
using namespace std;
/*
*poj 1035
*Author:Biang Hoo
*August 2 2013
*/
int main(){
string Dictionary[10001];
string check[51];
string output[100];
int num=0;//the input number of dictionary
int j=0;//the input num of check
string str;
while(cin>>str && str != "#"){
Dictionary[num] = str;
num++;
}
while(cin>>str && str != "#"){
check[j] = str;
j++;
}
for( int i=0;i<j;i++){
bool find = false;
int m;
for(m=0;m<num;m++){
if(check[i]==Dictionary[m]){
cout<<check[i]<<" is correct"<<endl;
find=true;
break;
}
}
if(!find){
const char * word = check[i].c_str();
int word_len = check[i].length();
cout<<check[i]<<":"<<" ";
for(m=0;m<num;m++){
int dic_len=Dictionary[m].length();
if(dic_len==word_len || dic_len==word_len-1 || dic_len == word_len+1 ){
const char * dic =Dictionary[m].c_str();
int diff=0;
bool equal=true;
if(dic_len==word_len){
for(int z=0;z<word_len;z++){
if(word[z] != dic[z]){
diff++;
if(diff>1){
equal=false;
break;
}
}
}
if(equal){
cout<<dic<<" ";
}
}else if(dic_len == word_len-1){
int word_num=0;
int dic_num=0;
while(word_num<word_len){
if(word[word_num] != dic[dic_num]){
word_num++;
diff++;
if(diff>1){
equal =false;
break;
}
}else{
word_num++;
dic_num++;
}
}
if(equal){
cout<<dic<<" ";
}
}else{
int word_num=0;
int dic_num=0;
while(dic_num<dic_len){
if(word[word_num] != dic[dic_num]){
dic_num++;
diff++;
if(diff>1){
equal =false;
break;
}
}else{
word_num++;
dic_num++;
}
}
if(equal){
cout<<dic<<" ";
}
}
}
}
cout<<endl;
}
find=false;
}
return 0;
}
#include<iostream>
#include<string>
using namespace std;
/*
*poj 1035
*Author:Biang Hoo
*August 2 2013
*/
void process(string word_str,string dic_str,int word_len,int dic_len){
const char * word = word_str.c_str();
const char * dic =dic_str.c_str();
int diff=0;
bool equal=true;
if(dic_len==word_len){
for(int z=0;z<word_len;z++){
if(word[z] != dic[z]){
diff++;
if(diff>1){
equal=false;
break;
}
}
}
if(equal){
cout<<dic<<" ";
}
}else if(dic_len == word_len-1){
int word_num=0;
int dic_num=0;
while(word_num<word_len){
if(word[word_num] != dic[dic_num]){
word_num++;
diff++;
if(diff>1){
equal =false;
break;
}
}else{
word_num++;
dic_num++;
}
}
if(equal){
cout<<dic<<" ";
}
}else{
int word_num=0;
int dic_num=0;
while(dic_num<dic_len){
if(word[word_num] != dic[dic_num]){
dic_num++;
diff++;
if(diff>1){
equal =false;
break;
}
}else{
word_num++;
dic_num++;
}
}
if(equal){
cout<<dic<<" ";
}
}
}
int main(){
string Dictionary[10001];
string check[51];
string output[100];
int num=0;//the input number of dictionary
int j=0;//the input num of check
string str;
while(cin>>str && str != "#"){
Dictionary[num] = str;
num++;
}
while(cin>>str && str != "#"){
check[j] = str;
j++;
}
for( int i=0;i<j;i++){
bool find = false;
int m;
for(m=0;m<num;m++){
if(check[i]==Dictionary[m]){
cout<<check[i]<<" is correct"<<endl;
find=true;
break;
}
}
if(!find){
//const char * word = check[i].c_str();
int word_len = check[i].length();
cout<<check[i]<<":"<<" ";
for(m=0;m<num;m++){
int dic_len=Dictionary[m].length();
if(dic_len==word_len || dic_len==word_len-1 || dic_len == word_len+1 ){
//const char * dic =Dictionary[m].c_str();
process(check[i],Dictionary[m],word_len,dic_len);
}
}
cout<<endl;
}
find=false;
}
return 0;
}