using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
    static List<long> Numbers = new List<long>();
    public static void Main()
    {
        Numbers.Add(1);
        int num0 = 0 ;
        Console.WriteLine(1);
        while (Permutation(Numbers[num0])!=0)
        {
            Numbers.Add(Permutation(Numbers[num0]));
            Console.WriteLine(Numbers[Numbers.Count-1]);
            num0++;
        }
        }
        static long Permutation(long num0)
        {
            List<long> Next_Term = new List<long>();
            string Term = Convert.ToString(num0);
            int Y = 0;
            while (Term.Length>=Y)
            {
                int X = Y;
                string P_Term = "";
                string Digits_Before = "";
                string Digits_After = "";
                for (int i = 0; i < X; i++)
                {
                    Digits_Before = Digits_Before + Term[i];
                }
                while(X!=Term.Length)
                {
                    Digits_After = "";
                    for (int i = X+1; i < Term.Length; i++)
                    {
                        Digits_After = Digits_After + Term[i];
                    }
                    P_Term = P_Term + Term[X];
                    if(P_Term == Convert.ToString(Convert.ToInt64(P_Term))){
                    if (Convert.ToInt64(P_Term)%2==0&Numbers.Contains(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)/2) + Digits_After))==false)
                    {
                        Next_Term.Add(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)/2) + Digits_After));
                    }else{
                    if (Numbers.Contains(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)*2) + Digits_After))==false)
                    {
                        Next_Term.Add(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)*2) + Digits_After));
                    } ;
                }
                    }
                    X++;
                }
                while (Convert.ToInt64(Term[0])==Convert.ToInt64("0"))
                {
                    Y++;
                }
                Y++;
            }
            if (Next_Term.Count!=0)
            {
            return Next_Term.Min();
            }else
            {
                return 0;
            }
}
}