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); } }