#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 10;
long long n, k;
int a[maxn], top;
void dfs(int now) {
  if (now == top + 1) return;
  for (int i = 1; i <= a[now] - 1; i++) cout << "()";
  cout << "(";
  dfs(now + 1);
  cout << ")";
}
int main() {
  cin >> n >> k;
  if ((n - 1) * n / 2 < k)
    cout << "Impossible";
  else {
    for (int i = 1;; i++) {
      if (i - 1 <= k) {
        a[++top] = 1;
        k -= (i - 1);
      } else
        break;
    }
    int temp = a[1];
    for (int i = top; i >= 2; i--) {
      if (i - 1 <= k) k -= (i - 1), a[i]++;
      temp += a[i];
    }
    if (temp > n)
      cout << "Impossible";
    else {
      a[1] += n - temp;
      dfs(1);
    }
  }
}
