#include <bits/stdc++.h>
using namespace std;
long long n, a[300005], k;
int duyet(int m, int p) {
  if (p == 0) return 0;
  printf("(");
  duyet(m + 1, p - 1);
  while (true) {
    long long mm = 0, pp = 0;
    for (int i = 1; i <= n; i++)
      if (pp + 1 <= n && m * (mm + i) + (mm + i - 1) <= k) {
        pp++;
        mm += i - 1;
      } else
        break;
    if (pp == 0) break;
    k -= mm + m * (mm + 1);
    n -= pp;
    duyet(m + 1, pp);
  }
  printf(")");
}
void solve() {
  cin >> n >> k;
  if ((long long)(n - 1) * n / 2 < (long long)k) {
    cout << "Impossible";
    return;
  }
  while (n > 0) {
    long long m = 0, p = 0;
    for (int i = 1; i <= n; i++)
      if ((long long)p + 1 <= (long long)n &&
          (long long)m + i - 1 <= (long long)k) {
        p++;
        m += i - 1;
      } else
        break;
    k -= m;
    n -= p;
    duyet(1, p);
  }
}
int main() { solve(); }
