Given two words and a list as input, your program must (in as few characters as possible, of course) find the shortest way to "chain" the first word to the last using the ones in the list. Two words are "chained" if their first and last letters are the same, e.g. "Food" and "Door". Examples: `Input: joke, corn | tan, disc, need, eat` `Output: joke, eat, tan, need, disc, corn` Note that delimiters between list items (in both input and output) are completely up to you, but they must be **only one character long**; I'm using commas and pipes with spaces for clarity. `Input: best, fry | easy, elf, mean, tame, yam, nice` `Output: best, tame, elf, fry` NOT: `best, tame, easy, yam, mean, nice, elf, fry` `Input: rug, gunned | orange, purple, gains, pore, soup, emo, ending` `Output: rug, gunned` `Input: %3gioxl?, 6699-4 | !f!!&+, ?4é;, 78!, +6` `Output: %3gioxl?, ?4é;, 78!, !f!!&+, +6, 6699-4` The "words" don't have to be real words; anything separated by your chosen delimiter will count. `Input: mouth, rich | frame, inspire, item, sold` Output when the first and last word are impossible to chain is undefined, so handle it however's shortest.