#include <bits/stdc++.h>
using namespace std;
long long getnum(long long x) { return x * (x - 1) / 2ll; }
int main() {
  long long a00, a01, a10, a11;
  while (scanf("%I64d %I64d %I64d %I64d", &a00, &a01, &a10, &a11) != EOF) {
    long long sum = a00 + a01 + a10 + a11;
    if (sum == 0) {
      printf("0\n");
      continue;
    }
    long long len = sqrt(sum * 2ll);
    len++;
    long long len00 = sqrt(a00 * 2ll);
    len00++;
    long long len11 = sqrt(a11 * 2ll);
    len11++;
    if (len00 < len11)
      len00 = len - len11;
    else
      len11 = len - len00;
    if (len != len00 + len11 || getnum(len00) != a00 || getnum(len11) != a11 ||
        getnum(len) != sum) {
      printf("Impossible\n");
    } else {
      for (int i = 1; i <= len; i++) {
        if (a10 > 0 && a10 >= len00) {
          printf("1");
          a10 -= len00;
        } else {
          if (len00 > 0) {
            printf("0");
            len00--;
          } else
            printf("1");
        }
      }
      printf("\n");
    }
  }
  return 0;
}
