#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
char s[N];
int cnt1[15], cnt2[15], ans1[N], ans2[N];
int main() {
  scanf("%s", s);
  int n = strlen(s), ans = 0;
  for (int i = 0; i < n; ++i) {
    ++cnt1[s[i] - '0'];
    ++cnt2[s[i] - '0'];
  }
  int p = 0;
  int mi = 100, f = -1;
  int tmp = cnt1[0] - cnt1[9];
  for (int i = 1; i <= tmp; ++i) {
    ans1[++p] = 0, --cnt1[0];
    ans2[p] = 0, --cnt2[0];
  }
  for (int i = 1; i <= 5; ++i) {
    if (cnt1[i] && cnt1[10 - i]) {
      int t = 0;
      if (cnt1[i] && cnt1[9 - i] && cnt1[i] <= cnt1[9 - i]) t += 1;
      if (i != 5 && cnt1[10 - i] && cnt1[i - 1] && cnt1[10 - i] <= cnt1[i - 1])
        t += 1;
      if (t < mi) mi = t, f = i;
    }
  }
  if (mi != 100) {
    if (f == 1 || f == 9) {
      if (cnt1[0] > cnt1[9] - 1) {
        ans1[++p] = 0, --cnt1[0];
        ans2[p] = 0, --cnt2[0];
      }
    }
    ans1[++p] = f, --cnt1[f];
    ans2[p] = 10 - f, --cnt2[10 - f];
  } else {
    int tmp = cnt1[0];
    for (int i = 1; i <= tmp; ++i) {
      ans1[++p] = 0, --cnt1[0];
      ans2[p] = 0, --cnt2[0];
    }
  }
  for (int i = 0; i <= 9; ++i) {
    while (cnt1[i] && cnt2[9 - i]) {
      ans1[++p] = i, --cnt1[i];
      ans2[p] = 9 - i, --cnt2[9 - i];
    }
  }
  for (int i = p + 1; i <= n; ++i) {
    for (int j = 0; j <= 9; ++j) {
      if (cnt1[j]) {
        ans1[i] = j, --cnt1[j];
        break;
      }
    }
  }
  for (int i = p + 1; i <= n; ++i) {
    for (int j = 0; j <= 9; ++j) {
      if (cnt2[j]) {
        ans2[i] = j, --cnt2[j];
        break;
      }
    }
  }
  for (int i = n; i >= 1; --i) printf("%d", ans1[i]);
  puts("");
  for (int i = n; i >= 1; --i) printf("%d", ans2[i]);
  return 0;
}
