#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, k;
  cin >> n >> k;
  vector<long long> sz;
  for (int i = 0; i < n; i++) {
    sz.push_back(((((long long)i) * ((long long)i + 1)) / 2));
  }
  if (k > (((n - 1) * (n - 1 + 1)) / 2)) {
    cout << "Impossible";
    return 0;
  }
  long long gz = upper_bound(sz.begin(), sz.end(), k) - sz.begin() - 1;
  k = k - sz[gz];
  long long x = k / (gz + 1);
  k = k - (x) * (gz + 1);
  long long y = k;
  long long z = n - (gz + 1 + x + 1);
  if (z < 0) {
    z++;
    y = -1;
  }
  string buf = "()";
  string str = "";
  for (int i = 0; i < z; i++) {
    str += buf;
  }
  for (int i = 0; i < gz + 1; i++) {
    if (i == y) {
      str += buf;
    }
    str += "(";
  }
  for (int i = 0; i < x; i++) {
    str += buf;
  }
  for (int i = 0; i < gz + 1; i++) {
    str += ")";
  }
  cout << str;
  return 0;
}
