import java.util.*;

public class torre {
    private static final int maxn = 10000;
    public static void main( String[] args ){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.close();

        List<Integer> ans = get_ans(n);

        for( int x : ans ) System.out.println(x);
    }


    public static List<Integer> get_digits( int n ){
        List<Integer> digits = new ArrayList<>();
        for( int i = 0; i < 4; i++ ){
            digits.add(n%10); 
            n /= 10;
        }
        return digits; 
    }

    public static int get_num( List<Integer> digits ){
        int num = 0; 
        for( int x : digits ) num = 10*num + x; 
        return num;
    }

    public static List<Integer> get_ans( int n ){
        List<Integer> ans = new ArrayList<>();
        boolean[] marc = new boolean[maxn];
        while( !marc[n] ){
            marc[n] = true; 
            ans.add(n); 

            List<Integer> digits = get_digits(n);

            digits.sort(null);
            int x1 = get_num( digits ); 
            
            digits.sort(Comparator.reverseOrder());
            int x2 = get_num( digits );
            
            n = x2 - x1; 
        }
        return ans;
    }
}