private static void Main(string[] args)
        {
            if (Environment.CurrentDirectory.ToLower().EndsWith("bin\\debug"))
            {
                Console.SetIn(new StreamReader("test.008.in.txt"));
            }

            var startWord  = Console.ReadLine();
            var endWord    = Console.ReadLine();
            var wordLength = startWord.Length;
            var words      = new HashSet <string>();

            while (true)
            {
                var currentWord = Console.ReadLine();

                if (string.IsNullOrEmpty(currentWord))
                {
                    break;
                }

                if (currentWord.Length == wordLength)
                {
                    words.Add(currentWord);
                }
            }

            var numberOfTransformations = Bfs.Traverse(words, startWord, endWord);

            Console.WriteLine(numberOfTransformations == 0 ? "NO" : numberOfTransformations.ToString());
        }