#include <bits/stdc++.h>
using namespace std;
int val[1000000];
long long bi(int i) { return ((long long)i * (i - 1)) / 2; }
int main() {
  int a00, a01, a10, a11;
  scanf("%d%d%d%d", &a00, &a01, &a10, &a11);
  int n0 = 0;
  while (bi(n0) < a00) n0++;
  if (bi(n0) != a00) {
    printf("Impossible\n");
    return 0;
  }
  if (n0 == 0 && a01 + a10 > 0) n0++;
  int n1 = 0;
  while (bi(n1) < a11) n1++;
  if (bi(n1) != a11) {
    printf("Impossible\n");
    return 0;
  }
  if (n1 == 0 && a01 + a10 > 0) n1++;
  if (n1 + n0 == 0) n1 = 1;
  if (bi(n0 + n1) != (long long)a00 + a01 + a11 + a10) {
    printf("Impossible\n");
    return 0;
  }
  int b01 = 0;
  int b10 = 0;
  int n = n0 + n1;
  for (int i = 0; i < n; i++) {
    if (b01 + n1 <= a01) {
      assert(n0 > 0);
      val[i] = 0;
      b01 += n1;
      n0--;
    } else {
      assert(n1 > 0);
      val[i] = 1;
      b10 += n0;
      n1--;
    }
    printf("%d", val[i]);
  }
  printf("\n");
  assert(n0 == 0 && n1 == 0);
  assert(b10 == a10 && b01 == a01);
  return 0;
}
