#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int a00, a01, a10, a11, count0 = -1, count1 = -1, allsat = -1;
  scanf("%lld %lld %lld %lld", &a00, &a01, &a10, &a11);
  for (int i = 0; i * (i - 1) / 2 <= a00; ++i)
    if (i * (i - 1) / 2 == a00) {
      count0 = i;
      break;
    }
  for (int i = 0; i * (i - 1) / 2 <= a11; ++i)
    if (i * (i - 1) / 2 == a11) {
      count1 = i;
      break;
    }
  if (count0 == 0 &&
      (count0 + count1) * (count0 + count1 - 1) / 2 != a00 + a01 + a10 + a11)
    count0++;
  if (count1 == 0 &&
      (count0 + count1) * (count0 + count1 - 1) / 2 != a00 + a01 + a10 + a11)
    count1++;
  if (count0 == 1 &&
      (count0 + count1) * (count0 + count1 - 1) / 2 != a00 + a01 + a10 + a11)
    count0--;
  if (count0 == -1 || count1 == -1 ||
      (count0 + count1) * (count0 + count1 - 1) / 2 != a00 + a01 + a10 + a11) {
    printf("Impossible\n");
    return 0;
  }
  char output[count0 + count1];
  int stringlength = count0 + count1;
  for (int i = count0 + count1 - 1; i >= 0; --i) output[i] = 0;
  for (int i = count0 + count1 - 1; i >= 0; --i) {
    if (a10 >= count1 && count0 > 0) {
      output[i] = '0';
      count0--;
      a10 -= count1;
    } else if (count1 > 0) {
      output[i] = '1';
      count1--;
      a01 -= count0;
    }
  }
  if (stringlength == 0) {
    printf("0\n");
    return 0;
  }
  for (int i = 0; i < stringlength; ++i) printf("%c", output[i]);
  printf("\n");
}
