Q429: Word Transformation

在報章雜誌上常會看到一種字謎叫做字的轉換(Word Transformation)。一開始給你一個字(word),然後每次改變這個字裡面的一個字元,都會使這個字變成另外一個字。依此規則可以得到一連串的字(這一串字的最後一個字就是目標字)。例如:spice這個字可以轉換為stock這個目標字,其轉換的過程為:spice, slice, slick, stick, stock。你會發現後面的字跟前面的字長度都一樣,且只有一個字元不同。

給你字典中的許多字,並且給你開始的字及目標字,你的任務寫一個程式來找出要從起始字轉換到目標字最少需多少步?

Input

輸入的第一列有一個整數代表共有多少組測試資料。接下來空一列。

每組測試資料一開始有多列字(最多200個字,每個字的內容均為小寫字母,且長度不會超過10),代表給你的字典中的字,也就是你在轉換的過程中可以用的字。這部分的資料到僅含有一個*的一列結束。接下來的每列有2個字,分別代表起始字和目標字。這2個字都會出現在字典中,並且你可以放心的假設利用字典中的字一定可以成功的轉換。這一部份的資料到遇到一空白列或輸入檔結束為止。

測試資料間亦有一空白列,請參考Sample Input。

Output

對輸入每組測試資料*之後的問題,輸出開始的字及目標字,以及從起始字轉換到目標字最少需多少步。

測試資料間亦輸出一空白列,請參考Sample Output。

Sample input

2

dip
lip
mad
map
maple
may
pad
pip
pod
pop
sap
sip
slice
slick
spice
stick
stock
*
spice stock
may pod

dip
lip
mad
map
maple
may
pad
pip
pod
pop
sap
sip
slice
slick
spice
stick
stock
*
spice slick
may mad

Sample Output

spice stock 4
may pod 3

spice slick 2
may mad 1