import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintStream; import java.io.PrintWriter; import java.util.Arrays; import java.util.Iterator; public class Main_yukicoder313_1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Printer pr = new Printer(System.out); int[] cnt = {20104, 20063, 19892, 20010, 19874, 20199, 19898, 20163, 19956, 19841}; char[] s = sc.next().toCharArray(); if (s[0] != '3') { pr.printf("%c %c\n", s[0], '3'); } else { int[] tmp = new int[10]; for (int i = 2; i < s.length; i++) { tmp[s[i] - '0']++; } char c = '0'; char w = '0'; for (int i = 0; i < 10; i++) { if (cnt[i] > tmp[i]) { c += i; } else if (cnt[i] < tmp[i]) { w += i; } } pr.printf("%c %c\n", w, c); } pr.close(); sc.close(); } @SuppressWarnings("unused") private static class Scanner { BufferedReader br; Iterator it; Scanner (InputStream in) { br = new BufferedReader(new InputStreamReader(in)); } String next() throws RuntimeException { try { if (it == null || !it.hasNext()) { it = Arrays.asList(br.readLine().split(" ")).iterator(); } return it.next(); } catch (IOException e) { throw new IllegalStateException(); } } int nextInt() throws RuntimeException { return Integer.parseInt(next()); } long nextLong() throws RuntimeException { return Long.parseLong(next()); } float nextFloat() throws RuntimeException { return Float.parseFloat(next()); } double nextDouble() throws RuntimeException { return Double.parseDouble(next()); } void close() { try { br.close(); } catch (IOException e) { // throw new IllegalStateException(); } } } private static class Printer extends PrintWriter { Printer(PrintStream out) { super(out); } } }