#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:336777216")
using namespace std;
const int MAXN = 1000000 + 10;
int N;
long long K;
long long nest, remain;
void Print(int cur, int wz) {
  if (cur == nest) return;
  printf("(");
  N--;
  Print(cur + 1, wz);
  printf(")");
  if (wz != 0 && cur == wz) {
    printf("()");
    N--;
  }
}
void Work() {
  scanf("%d%I64d", &N, &K);
  long long MX = (long long)N * (long long)(N - 1) / 2;
  if (K > MX) {
    printf("Impossible\n");
    return;
  }
  for (int i = 2;; i++)
    if ((long long)(i - 1) * (long long)i / 2 <= K) {
      nest = i;
      remain = K - (long long)(i - 1) * (long long)i / 2;
    } else
      break;
  Print(0, remain);
  while (N--) printf("()");
  printf("\n");
}
int main() {
  Work();
  return 0;
}
