#include <bits/stdc++.h>
using namespace std;
const long long MAX1 = 3e5 + 10;
long long a, b, c, d, e, cnt, x, y, z, l, r, flag, num[MAX1], mod = 1e10 + 7;
string s;
char p[MAX1];
long long sta(long long n) {
  for (int i = 1; i < 1000000; ++i) {
    if (i * (i - 1) / 2 == n) return i;
  }
  return 0;
}
int main() {
  cin >> a >> b >> c >> d;
  x = sta(a);
  y = sta(d);
  if (a == 0) {
    if (b == 0 && c == 0 && x && y) {
      for (int i = 0; i < y; ++i) cout << 1;
      return 0;
    } else
      x = 1;
  }
  if (d == 0) {
    if (b == 0 && c == 0 && x && y) {
      for (int i = 0; i < x; ++i) cout << 0;
      return 0;
    } else
      y = 1;
  }
  if (x == 0 || y == 0) {
    cout << "Impossible";
    return 0;
  }
  if (x * y != b + c) {
    cout << "Impossible";
    return 0;
  }
  cnt = b / y;
  b -= cnt * y;
  x -= cnt;
  for (long long i = 0; i < cnt; ++i) cout << 0;
  for (long long i = 0; i < y - b; ++i) cout << 1;
  y -= y - b;
  if (x && b) cout << 0, --x;
  for (long long i = 0; i < y; ++i) cout << 1;
  for (long long i = 0; i < x; ++i) cout << 0;
  return 0;
}
