#include <bits/stdc++.h>   using namespace std;   const long long MAX1 = 3e5 + 10;   long long a, b, c, d, e, cnt, x, y, z, l, r, flag, num[MAX1], mod = 1e10 + 7;   string s;   char p[MAX1];   long long sta(long long n) {     for (int i = 1; i < 1000000; ++i) {       if (i * (i - 1) / 2 == n) return i;     }     return 0;   }   int main() {     cin >> a >> b >> c >> d;     x = sta(a);     y = sta(d);     if (a == 0) {       if (b == 0 && c == 0 && x && y) {         for (int i = 0; i < y; ++i) cout << 1;         return 0;       } else         x = 1;     }     if (d == 0) {       if (b == 0 && c == 0 && x && y) {         for (int i = 0; i < x; ++i) cout << 0;         return 0;       } else         y = 1;     }     if (x == 0 || y == 0) {       cout <<  Impossible ;       return 0;     }     if (x * y != b + c) {       cout <<  Impossible ;       return 0;     }     cnt = b / y;     b -= cnt * y;     x -= cnt;     for (long long i = 0; i < cnt; ++i) cout << 0;     for (long long i = 0; i < y - b; ++i) cout << 1;     y -= y - b;     if (x && b) cout << 0, --x;     for (long long i = 0; i < y; ++i) cout << 1;     for (long long i = 0; i < x; ++i) cout << 0;     return 0;   }   