#include <bits/stdc++.h>
using namespace std;
char str[100005];
bool check(int a, int b, int c, int d) { return a * d == b + c; }
int main() {
  int i, j, a0, a10, a01, a1;
  cin >> a0 >> a01 >> a10 >> a1;
  if (a0 == 0) {
    if (a10 || a01)
      a0 = 1;
    else
      a0 = 0;
  } else {
    for (i = 1;; i++) {
      a0 -= i;
      if (a0 < 0)
        return 0 * printf("Impossible\n");
      else if (a0 == 0)
        break;
    }
    a0 = i + 1;
  }
  if (a1 == 0) {
    if (a0 == 0)
      a1 = 1;
    else if (a10 || a01)
      a1 = 1;
    else
      a1 = 0;
  } else {
    for (i = 1;; i++) {
      a1 -= i;
      if (a1 < 0)
        return 0 * printf("Impossible\n");
      else if (a1 == 0)
        break;
    }
    a1 = i + 1;
  }
  if (!check(a0, a01, a10, a1)) return 0 * printf("Impossible\n");
  i = 0;
  while (1) {
    if (a0 == 0 && a1 == 0) {
      break;
    }
    if (a0 > 0 && a01 >= a1 && check(a0 - 1, a01 - a1, a10, a1)) {
      a0 = a0 - 1, a01 -= a1;
      str[i++] = '0';
    } else if (a1 > 0 && a10 >= a0 && check(a0, a01, a10 - a0, a1 - 1)) {
      a10 = a10 - a0, a1--;
      str[i++] = '1';
    } else
      return 0 * printf("Impossible\n");
  }
  printf("%s\n", str);
}
