#include <bits/stdc++.h>
using namespace std;
const int N = (int)3e5 + 5;
const int mx = (int)3e5;
const int mod = 1000000007;
vector<int> v;
long long dp[N];
int bs(int hi, long long k) {
  int lo = 0;
  int ans = 0;
  while (lo <= hi) {
    int mid = (lo + hi) / 2;
    if (dp[mid] == k) return mid;
    if (dp[mid] > k) {
      ans = mid;
      hi = mid - 1;
    } else
      lo = mid + 1;
  }
  return ans;
}
int main() {
  long long n, k;
  cin >> n >> k;
  if (k > (n * (n - 1)) / 2) {
    cout << "Impossible\n";
    return 0;
  }
  for (long long i = 1; i <= mx; i++) dp[i] = (i * (i - 1)) / 2;
  int idx = bs(mx, k);
  string ss = "";
  for (int i = 1; i < idx; i++) ss += "(";
  int h = k - dp[idx - 1];
  for (int i = 1; i < idx - h; i++) ss += ")";
  ss += "()";
  for (int i = 0; i < h; i++) ss += ")";
  n -= idx;
  for (int i = 0; i < n; i++) ss += "()";
  cout << ss << endl;
  return 0;
}
