Яндекс Алгоритмы и задачка B. Фактор палиндромности

Решаю задачку, которая была предложена на Яндекс Algorithm, Practice round. Задачка B. Фактор палиндромности. Ниже представлено мое решение, но на тесте №5 Яндекс выдает, что решение неверное. Не могу разобраться, что я не учел. Буду благодарен за помощь.

class Program
{
    static void Main(string[] args)
    {
        var input = Console.ReadLine();
        if (FindMinPalindrom2(input, out var res) == 0)
        {
            Console.WriteLine(res);
        }
        else
        {
            Console.WriteLine("-1");
        }
    }

    static int FindMinPalindrom2(string input, out string best)
    {
        var substr2 = new HashSet<string>();
        best = null;

        for (int i = 1; i < input.Length; i++)
        {
            var str = input.Substring(i - 1, 2);
            if (IsPalindrome(str) && !substr2.Contains(str))
                substr2.Add(str);

            if (i > 1)
            {
                str = input.Substring(i - 2, 3);
                if (IsPalindrome(str) && !substr2.Contains(str))
                    substr2.Add(str);
            }
        }

        if (substr2.Count > 0)
        {
            foreach (var str in substr2)
            {
                best = best is null ? str : Min(str, best);
            }
            return 0;
        }
        else
        {
            return -1;
        }
    }

    static bool IsPalindrome(string input)
    {
        for(int i = 0; i < input.Length; i++)
            if (input[i] != input[input.Length - i - 1])
                return false;
        return true;
    }

    static string Min(string a, string b)
    {
        if (a.Length < b.Length && b.Substring(0, a.Length) == a)
        {
            return a;
        }

        for (int i = 0; i < Math.Min(a.Length, b.Length); i++)
        {
            if (a[i] > b[i])
                return b;

            if ((a[i] < b[i]))
                return a;
        }

        return b;
    }

}

Ответы (0 шт):