#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
const long long MAX = 1e4 + 5;
const long long MAX2 = 11;
const int MOD = 1000000000 + 7;
const long long INF = 20000;
const int nr[] = {1, -1, 0, 0, 1, 1, -1, -1};
const int nc[] = {0, 0, 1, -1, 1, -1, 1, -1};
int cnt, x, sz;
string s;
vector<int> v;
int main() {
  cout << fixed << setprecision(5);
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> s;
  for (auto i : s) {
    if (i == '1')
      x++;
    else if (i == '0')
      cnt++;
    else {
      v.push_back(cnt);
      cnt = 0;
    }
  }
  sz = v.size();
  sz--;
  if (v.empty()) {
    for (int i = 1; i <= cnt; i++) cout << "0";
    for (int i = 1; i <= x; i++) cout << "1";
    return 0;
  } else {
    for (int i = 1; i <= v[0]; i++) cout << "0";
    for (int i = 1; i <= x; i++) cout << "1";
    cout << "2";
  }
  for (int i = 1; i <= sz; i++) {
    for (int j = 1; j <= v[i]; j++) cout << "0";
    cout << "2";
  }
  for (int i = 1; i <= cnt; i++) cout << "0";
  return 0;
}
