#include <bits/stdc++.h>
using namespace std;
char str[200000];
int num[20], num1[20];
char a[200000], b[200000];
char cur1[200000], cur2[200000];
int len, p, q, maxi;
void solve(int x) {
  int i, sum = 0;
  int tnum[20], tnum1[20];
  for (i = 0; i <= 9; i++) {
    tnum[i] = num[i];
    tnum1[i] = num1[i];
  }
  while (tnum1[9] < tnum[0] && tnum[9] < tnum1[0]) {
    cur1[p--] = '0';
    cur2[q--] = '0';
    tnum[0]--;
    tnum1[0]--;
    sum++;
  }
  cur1[p--] = x + '0';
  cur2[q--] = 10 - x + '0';
  sum++;
  for (i = 0; i <= 9; i++) {
    while (tnum[i] > 0 && tnum1[9 - i] > 0) {
      tnum[i]--;
      tnum1[9 - i]--;
      cur1[p--] = i + '0';
      cur2[q--] = 9 - i + '0';
      sum++;
    }
  }
  for (i = 0; i <= 9; i++) {
    while (tnum[i]) {
      tnum[i]--;
      cur1[p--] = i + '0';
    }
    while (tnum1[i]) {
      tnum1[i]--;
      cur2[q--] = i + '0';
    }
  }
  cur1[len] = '\0';
  cur2[len] = '\0';
  if (sum > maxi) {
    maxi = sum;
    strcpy(a, cur1);
    strcpy(b, cur2);
  }
}
int main() {
  int i;
  scanf("%s", str);
  len = strlen(str);
  for (i = 0; i < len; i++) {
    num[str[i] - '0']++;
    num1[str[i] - '0']++;
  }
  bool flag = false;
  for (i = 1; i <= 5; i++) {
    p = len - 1;
    q = len - 1;
    if (num[i] > 0 && num1[10 - i] > 0) {
      num[i]--;
      num1[10 - i]--;
      solve(i);
      num[i]++;
      num1[10 - i]++;
      flag = true;
    }
  }
  p = len - 1;
  q = len - 1;
  if (!flag) {
    while (num[0] > 0) {
      num[0]--;
      a[p--] = '0';
      b[q--] = '0';
    }
    for (i = 0; i <= 9; i++) {
      while (num[i] > 0) {
        num[i]--;
        a[p--] = '0' + i;
        b[q--] = '0' + i;
      }
    }
  }
  printf("%s\n%s\n", a, b);
  return 0;
}
