#include <bits/stdc++.h>
using namespace std;
const int N = 300002;
int n, len, x = 0;
long long k;
vector<int> ans[N];
int main() {
  scanf("%d%I64d", &n, &k);
  if (2 * k > n * (n - 1ll)) return printf("Impossible"), 0;
  for (int(i) = (1); (i) <= (int)(n); (i)++)
    if (i * (i + 1ll) / 2 > k) {
      len = i;
      k -= i * (i - 1ll) >> 1;
      n -= i;
      break;
    }
  while (k && n) {
    bool done = false;
    int x, y;
    long long mx = 0;
    for (int(i) = (1); (i) <= (int)(n); (i)++)
      if (i * (i - 1ll) / 2 <= k) {
        long long t = min((k - i * (i - 1ll) / 2) / i, 1ll * len);
        long long sum = i * (i - 1ll) / 2 + t * i;
        if (sum > mx) {
          mx = sum;
          x = i, y = t;
        }
      }
    k -= mx;
    ans[y].push_back(x);
    n -= x;
  }
  for (int(i) = (1); (i) <= (int)(n); (i)++) printf("()");
  for (int(i) = (0); (i) <= (int)(len - 1); (i)++) {
    for (int x : ans[i]) {
      for (int(i) = (1); (i) <= (int)(x); (i)++) printf("(");
      for (int(i) = (1); (i) <= (int)(x); (i)++) printf(")");
    }
    printf("(");
  }
  for (int(i) = (0); (i) <= (int)(len - 1); (i)++) printf(")");
}
