static void Main(string[] args)
        {
            //Digit[] digits = new Digit[2];
            //digits[0] = new Digit("1111110");
            //digits[1] = new Digit("1111111");

            int n = int.Parse(Console.ReadLine());
            //int n =1;
            Digit[] digits= new Digit[n];
            for (int i = 0; i < n; i++)
            {
                digits[i]= new Digit(Console.ReadLine());
                //digits[0] = new Digit("1011111");
            }

            //Array.Reverse(digits);

            List<string> result = new List<string>();

            foreach (Digit item in digits)
            {
                int[] possibleDigits = item.GetPossibleDigits();
                result=AddToResult(result, possibleDigits);
            }

            string[] finalres = result.ToArray();
            Array.Sort(finalres);
            Console.WriteLine(finalres.Length);
            foreach (string item in finalres)
            {
                Console.WriteLine(item);
            }
        }