import java.util.*;

public class Euler170 {
    static boolean isPandigital(String s) {
        if (s.length() != 10)
            return false;
        char[] c = s.toCharArray();
        Arrays.sort(c);
        return new String(c).equals("0123456789");
    }

    static List<Integer> divisors(int n) {
        List<Integer> d = new ArrayList<>();
        for (int i = 1; (long) i * i <= n; i++)
            if (n % i == 0) {
                d.add(i);
                if (i != n / i)
                    d.add(n / i);
            }
        d.sort(Collections.reverseOrder());
        return d;
    }

    static int gcd(int a, int b) {
        while (b != 0) {
            int t = b;
            b = a % b;
            a = t;
        }
        return a;
    }

    static boolean hasValid(String output) {
        int n = output.length();
        for (int mask = 1; mask < (1 << (n - 1)); mask++) {
            List<Integer> parts = new ArrayList<>();
            int start = 0;
            boolean ok = true;
            for (int bit = 0; bit < n - 1; bit++) {
                if (((mask >> bit) & 1) == 0)
                    continue;
                String p = output.substring(start, bit + 1);
                if (p.length() > 1 && p.charAt(0) == '0') {
                    ok = false;
                    break;
                }
                parts.add(Integer.parseInt(p));
                start = bit + 1;
            }
            if (!ok)
                continue;
            String last = output.substring(start);
            if (last.length() > 1 && last.charAt(0) == '0')
                continue;
            parts.add(Integer.parseInt(last));
            if (parts.size() < 2)
                continue;
            int g = parts.get(0);
            for (int p : parts)
                g = gcd(g, p);
            for (int mult : divisors(g)) {
                if (mult == 0)
                    continue;
                StringBuilder sb = new StringBuilder();
                sb.append(mult);
                boolean div = true;
                for (int p : parts) {
                    if (p % mult != 0) {
                        div = false;
                        break;
                    }
                    sb.append(p / mult);
                }
                if (div && isPandigital(sb.toString()))
                    return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] digits = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
        do {
            if (digits[0] == 0)
                continue;
            StringBuilder sb = new StringBuilder();
            for (int d : digits)
                sb.append(d);
            if (hasValid(sb.toString())) {
                System.out.println(sb);
                return;
            }
        } while (prevPerm(digits));
    }

    static boolean prevPerm(int[] a) {
        int i = a.length - 2;
        while (i >= 0 && a[i] <= a[i + 1])
            i--;
        if (i < 0)
            return false;
        int j = a.length - 1;
        while (a[j] >= a[i])
            j--;
        int t = a[i];
        a[i] = a[j];
        a[j] = t;
        for (int l = i + 1, r = a.length - 1; l < r; l++, r--) {
            t = a[l];
            a[l] = a[r];
            a[r] = t;
        }
        return true;
    }
}
