//using System;
//using System.Collections.Generic;
//using System.Linq;

//namespace Volumen0
//{
//    class Pai
//    {
//        internal List<int> lst = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

//    }
//    class Program
//    {
//        static void Main()
//        {
//            var P = new Pai[4];
//            for (int i = 0; i < P.Length; ++i)
//            {
//                P[i] = new Pai();
//            }
//            string line;
//            while ((line = Console.ReadLine()) != null)
//            {
//                var a = line.ToCharArray().Select(x => x.ToString()).Select(int.Parse).ToArray();
//                Array.Sort(a);
//                Array.Reverse(a);
//                bool HasAll = false;
//                for (int i = 0; i < a.Length - 1; ++i)
//                {
//                    if (a[i] == a[i + 1])
//                    {
//                        if (a[i] == a[i + 2])
//                        {
//                            //tiene tres
//                        }
//                        else if (a[i] == a[i + 3])
//                        {
//                            HasAll = true; //tiene todos
//                        }
//                        else
//                        {
//                            //dos
//                        }
//                    }
//                    else if (a[i] == a[i + 1] + 1)
//                    {
//                        if (a[i] == a[i + 2] + 2)
//                        {
//                            //tiene un array de numeros
//                        }
//                    }

//                    //try input1 - 9 y si esta bien, output
//                }
//                Console.WriteLine();
//            }
//        }
//    }
//}

using System;
using System.Linq;
using System.Collections.Generic;

class Program
{

    static void Main()
    {
        var op = new Operate();
        string str;
        while ((str = Console.ReadLine()) != null)
        {
            var a = Enumerable.Repeat(0, 9).ToArray();
            foreach (var item in str)
            {
                ++a[int.Parse(item.ToString()) - 1];
            }
            var ans = new List<int>();
            for (int i = 1; i <= 9; i++)
            {
                if (a[i - 1] == 4)
                    continue;       //tiene todos
                ++a[i - 1];
                if (op.CanFill(a))
                {
                    ans.Add(i);
                }
                --a[i - 1];         //catch
            }

            if (ans.Count != 0)     //si hay algo
            {
                Console.WriteLine(string.Join(" ", ans.Select(x => x.ToString()).ToArray()));
            }
            else
            {
                Console.WriteLine(0);
            }
        }
    }
}
class Operate
{
    internal bool CanFill(int[] a)
    {
        bool r = false;
        if (a.Count(x => x == 0) == 8 && a.Count(x => x == 2) == 1)
            return true;
        for (int i = 1; i <= 9; ++i)
        {
            if (a[i - 1] >= 3)          //tiene mas de tres
            {
                a[i - 1] -= 3;
                r = CanFill(a);
                a[i - 1] += 3;
                if (r)
                    return r;
            }
        }
        for (int i = 1; i <= 7; ++i)
        {
            if (a[i - 1] > 0 && a[i] > 0 && a[i + 1] > 0)
            {
                --a[i - 1];
                --a[i];
                --a[i + 1];
                r = CanFill(a);
                ++a[i - 1];
                ++a[i];
                ++a[i + 1];
                if (r)
                    return r;
            }
        }
        return r;
    }
}



Measured memory_bytes: 14316