Once upon a time there was a teacher that wanted to teach his students all the words in the dictionary. To do so, he started selecting by memory two words of the dictionary, and wanted their students to be changing the leters of the words, one by one, so that the original word eventually got converted into the final word, but with the restriction that every step only a letter could be changed, and, very importantly, each intermediate word must also be part of the dictionary.
You have to help the teacher to know beforehand if a word can be changed into another word, one letter at a time, and each intermediate word belonging to a given dictionary, so that the teacher can select interesting examples to his students.
Input
Your program receives a list of (different) words, one each line, forming the dictionary, a line to end the dictionary, with the characters ‘--’, and several lines, each containing two words separated by a space (starting word and ending word, respectively). For each pair, you have to tell if the first word can be converted into the second using the given dictionary. The dictionary will have fewer than 20000 words.
Output
For each input word pair, your program must print ‘Yes’ if the first word can be converted into the second, or ‘No’ if it cannot be done.
Sample Input
abc
abd
acc
bbb
aba
abc acc
abc bbb
acc abd
bbb abc
abd abc
aba abc
Sample Output
Yes
No
Yes
No
Yes
Yes