#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int maxn = 1e6 + 100;
long long a[maxn];
int main() {
  long long n, k;
  for (long long i = 1; i <= 300001; ++i) a[i] = i * (i - 1) / 2;
  while (scanf("%lld%lld", &n, &k) != EOF) {
    if (k > n * (n - 1) / 2) {
      cout << "Impossible" << endl;
      continue;
    } else if (k == 0) {
      for (int i = 1; i <= n; ++i) printf("()");
      printf("\n");
      continue;
    }
    int s = lower_bound(a + 1, a + 1 + n, k) - a;
    if (a[s] >= k) --s;
    long long tt = k - a[s];
    for (int i = 1; i <= n - s - 1; ++i) printf("()");
    for (int i = 1; i <= s; ++i) {
      printf("(");
      if (i == tt) printf("()");
    }
    for (int i = 1; i <= s; ++i) {
      printf(")");
    }
    printf("\n");
  }
  return 0;
}
