#include <bits/stdc++.h>
using namespace std;
int main() {
  long long a00, a01, a10, a11;
  scanf("%lld %lld %lld %lld", &a00, &a01, &a10, &a11);
  long long d0 = sqrt(1 + 8 * a00);
  long long d1 = sqrt(1 + 8 * a11);
  if (!a00 && !a01 && !a10 && !a11) {
    printf("1\n");
    return 0;
  }
  if (d0 * d0 != 1 + 8 * a00 || d1 * d1 != 1 + 8 * a11) {
    printf("Impossible\n");
    return 0;
  }
  long long x = (1 + d0) / 2;
  long long y = (1 + d1) / 2;
  if (!a00) {
    if (a01 || a10) {
      x = 1;
    } else {
      x = 0;
    }
  }
  if (!a11) {
    if (a01 || a10) {
      y = 1;
    } else {
      y = 0;
    }
  }
  if (a00 + a01 + a10 + a11 != (x + y) * (x + y - 1) / 2) {
    printf("Impossible\n");
    return 0;
  }
  long long n = x + y;
  long long n0 = 0, n1 = 0;
  for (long long i = 0; i < n; i++) {
    if (a01 >= y - n1) {
      printf("0");
      n0++;
      a01 -= y - n1;
    } else {
      printf("1");
      n1++;
    }
  }
  printf("\n");
  return 0;
}
