#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const int INF = 1000 * 1000 * 1000 + 7;
const long long LINF = 1LL * INF * INF;
long long a00, a01, a11, a10;
int main() {
  cin >> a00 >> a01 >> a10 >> a11;
  if (a00 + a01 + a11 + a10 == 0) {
    cout << 1;
    return 0;
  }
  a00 *= 2;
  a11 *= 2;
  long long z = 0;
  long long o = 0;
  while (z * z - z < a00) z++;
  while (o * o - o < a11) o++;
  if (z * z - z != a00 || o * o - o != a11) {
    cout << "Impossible\n";
    return 0;
  }
  if (a01 + a10 != z * o) {
    if (o == 0 && a01 + a10 == z * (o + 1)) {
      o++;
    } else if (z == 0 && a01 + a10 == o * (z + 1)) {
      z++;
    } else if (z == 0 && o == 0 && a01 + a10 == (o + 1) * (z + 1)) {
      z++;
      o++;
    } else {
      cout << "Impossible\n";
      return 0;
    }
  }
  string s = "";
  while (z || o) {
    while (a01 >= o && z) {
      a01 -= o;
      s += '0';
      z--;
    }
    while (a10 >= z && o) {
      a10 -= z;
      s += '1';
      o--;
    }
  }
  cout << s;
  return 0;
}
