#include <bits/stdc++.h>
long long F(long long n) { return (n * (n - 1)) >> 1; }
long long solve(long long n, long long k) {
  long long low, high, mid;
  low = 1, high = n;
  while ((low + 1) < high) {
    mid = (low + high) >> 1;
    if (F(mid) <= k)
      low = mid;
    else
      high = mid;
  }
  if (F(high) <= k) return high;
  if (F(low) <= k) return low;
  return -1;
}
void print(long long n, long long x, long long c) {
  long long i;
  for (i = 0; i < x; i++) putchar('(');
  for (i = 0; i < (x - c); i++) putchar(')');
  if (c) printf("()");
  for (i = 0; i < c; i++) putchar(')');
  n -= x;
  if (c) n--;
  for (i = 0; i < n; i++) printf("()");
  puts("");
}
int main() {
  long long n, k;
  while (scanf("%lld %lld", &n, &k) != EOF) {
    if (F(n) >= k) {
      long long x = solve(n, k);
      if (F(x) != k && x == n)
        puts("Impossible");
      else
        print(n, x, k - F(x));
    } else
      puts("Impossible");
  }
  return 0;
}
